【问题标题】:Append output of two files in shell?在shell中附加两个文件的输出?
【发布时间】:2013-03-05 11:40:02
【问题描述】:

我有两个这样的文件

文件1

a
b
c

文件2

0
1
2

我要输出

a,0
b,1
c,2

像这样附加两个文件

文件1的行(n)+“,”+行(n)文件2
对于每个n,两个文件的总n相同

我想知道 shell 中是否有任何实用程序可以帮助我做到这一点,我不想为此或任何循环使用 java 文件读取文件写入。可以用awk完成吗?

【问题讨论】:

标签: linux bash shell awk paste


【解决方案1】:

使用稍微被忽视的工具pr

$ pr -m -t -s,  file1 file2
a,0
b,1
c,2

【讨论】:

    【解决方案2】:

    你想要paste:

    $ paste -d',' file1 file2
    a,0
    b,1
    c,2
    

    awk可以有很多方法,这里是一种:

    $ awk 'FNR==NR{a[FNR]=$0;next}{print a[FNR]","$0}' file1 file2
    a,0
    b,1
    c,2
    

    【讨论】:

    • 非常感谢!!我只想知道是否可以使用awk完成?
    • @JoeDimaggio 是的,它可以通过 awk 以多种方式完成,请参阅编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    相关资源
    最近更新 更多