我想在第一次出现时从文件(file.dat)中grep一个字符串,并通过从另一个文件(输出)读取来替换它。我有一个名为“输出”为例,文件中包含“AAA牛逼0001”如何通过grep和perl替换字符串
#!/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
基本上我想要的是:
当过一个字符串“AAA”从文件grep'ed“文件.dat“,我想用”T 0001“替换”AAA“旁边的第二列和第三列,但仍保留第一列”AAA“。上面的脚本似乎不起作用。
基本上 “$林1” 和$ SRT2变量不是 'S/$林1/$ SRT2/G' 内了解
例:
我FILE.DAT我有一排
AAA D ---- CITY COUNTRY
我要的是:
AAA T 0001 CITY COUNTRY
任何意见都非常赞赏。
什么?请在'file.dat'和'output'中显示数据以及你想要的结果。 – Borodin 2013-03-09 19:44:16
[grep和replace]的可能重复(http://stackoverflow.com/questions/15234334/grep-and-replace) – ikegami 2013-03-09 20:03:21