我只想在第一次出现时从文件(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”中grep字符串“AAA”时,我想用“T 0001”替换“AAA”旁边的第二和第三列但是仍然保持第一列“AAA”不变。上面的脚本基本上不起作用。基本上在 's/$lin1/$srt2/g' 中不理解 "$lin1" 和 $srt2 变量
例子:
在我的 file.dat 我有一排
AAA D----城市国家
我想要的是:
AAA T 0001 城市 国家
任何意见都非常感谢。