我只想在第一次出现时从文件(file.dat)中获取一个字符串,并通过从另一个文件(输出)中读取来替换它。我有一个名为“输出”的文件,例如包含“AAA T 0001”
#!/bin/bash
procdir=`pwd`
cat output | while read lin1 lin2 lin3
do
srt2=$(echo $lin1 $lin2 $lin3 | awk '{print $1,$2,$3}')
grep -m 1 $lin1 $procdir/file.dat | xargs -r0 perl -pi -e 's/$lin1/$srt2/g'
done
基本上我想要的是:
当第一次从文件“file.dat”中提取字符串“AAA”时,我想将“AAA”旁边的第二列和第三列替换为“T 0001”,但仍保留第一列“ AAA”就这样。上面的脚本似乎不起作用。
基本上在 's/$lin1/$srt2/g' 中不理解 "$lin1" 和 $srt2 变量
例子:
在我的 file.dat 我有一排
AAA D ---- CITY COUNTRY
我想要的是:
AAA T 0001 CITY COUNTRY
任何意见都非常感谢。