我被困在最后一步,希望有人能帮助我。
我有两个档案:
file1 =
绿色苹果
file2 =
绿色苹果/数量/100 红桃/数量/200
我的代码:
-f file1 file2 file2‘s/quantity(.*)/总计sed /’ =绿色苹果/总计
我想将其应用于file2,结果如下所示:
file2 =
绿色苹果/总计 红桃/数量/200
谢谢
发布于 2012-09-26 14:02:59
您可以通过这种方式使用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有什么问题吗?给我留言吧。
发布于 2012-09-26 14:10:47
您可以使用两个grep在一行中得到它:第一个用于匹配,第二个使用反向匹配(-v)。然后将第二个输出追加到第一个输出:
echo -e `grep -f file1 file2 | sed 's/quantity.*/totalXYZ/'`"\n"`grep -vf file1 file2`https://stackoverflow.com/questions/12603254
复制相似问题