我被困在最后一步,希望有人可以帮助我。
我有2个文件:
file1 =
Green Apple
file2 =
绿苹果/数量/ 100
红桃/数量/ 200
我的代码:
grep -f file1 file2 | sed's / quantity(。*)/ totalXYZ /'
= Green Apple / totalXYZ
我想将它应用于file2,所以结果如下:
file2 =
Green Apple / totalXYZ
红桃/数量/ 200
由于
答案 0 :(得分:0)
您可以通过这种方式使用AWK获取它:
awk -f grepandreplace.awk file2 file1
“grepandreplace.awk”的代码是:
#!/usr/bin/awk -f
BEGIN {
FS = "/";
f_grep = ARGV[2];
ARGC = 2;
while ((getline < f_grep) > 0) {
grep[$1] = "";
}
}
{
if ($1 in grep) {
print $1"/totalXYZ";
} else {
print $0;
}
}
我得到了你想要的输出:
Green Apple/totalXYZ
Red Peach/quantity/200
有任何问题吗?给我留言。
答案 1 :(得分:0)
您可以使用2个greps在一行中获取它:第一个用于匹配,第二个用于反向匹配(-v)。 然后将第二个输出附加到第一个输出:
echo -e `grep -f file1 file2 | sed 's/quantity.*/totalXYZ/'`"\n"`grep -vf file1 file2`