首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在两个文件中匹配公共行,然后在regex中编辑第二个文件。

在两个文件中匹配公共行,然后在regex中编辑第二个文件。
EN

Stack Overflow用户
提问于 2012-09-26 13:49:04
回答 2查看 32关注 0票数 2

我被困在最后一步,希望有人能帮助我。

我有两个档案:

file1 =

绿色苹果

file2 =

绿色苹果/数量/100 红桃/数量/200

我的代码:

-f file1 file2 file2‘s/quantity(.*)/总计sed /’ =绿色苹果/总计

我想将其应用于file2,结果如下所示:

file2 =

绿色苹果/总计 红桃/数量/200

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-26 14:02:59

您可以通过这种方式使用AWK获得它:

代码语言:javascript
复制
awk -f grepandreplace.awk file2 file1

"grepandreplace.awk“的代码是:

代码语言:javascript
复制
#!/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;
    }
}

我得到了你想要的输出:

代码语言:javascript
复制
Green Apple/totalXYZ
Red Peach/quantity/200

有什么问题吗?给我留言吧。

票数 0
EN

Stack Overflow用户

发布于 2012-09-26 14:10:47

您可以使用两个grep在一行中得到它:第一个用于匹配,第二个使用反向匹配(-v)。然后将第二个输出追加到第一个输出:

代码语言:javascript
复制
echo -e `grep -f file1 file2 | sed 's/quantity.*/totalXYZ/'`"\n"`grep -vf file1 file2`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12603254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档