【问题标题】:How to extract filename and add as a column using unix如何使用 unix 提取文件名并添加为列
【发布时间】:2016-05-30 00:18:38
【问题描述】:

我在一个目录中有一堆文件,即

file1.txt
file2.txt
file3.txt

每个文件都有相同的结构 即

id,  field
"a", 123
"b", 234
"c", 456

我想附加所有文件(不重复标题,但为文件名创建第三列,即

id,  field, filename
"a", 123, file1.txt
"b", 234, file2.txt
"c", 456, file3.txt

如何在 unix 中做到这一点? 我可以弄清楚如何提取文件名

【问题讨论】:

    标签: unix append filenames


    【解决方案1】:
    awk -v OFS=", " '
        NR == 1 {print $0, "filename"}
        FNR == 1 {next}
        {print $0, FILENAME}
    ' file* 
    

    您可能猜到了,FILENAME 变量包含当前正在处理的文件的名称。 FNR 变量包含当前文件的记录数,NR 包含处理的记录总数。所以,NR == 1 将是第一个文件的第一行

    记录在案的here -- 虽然这是到 GNU awk 的链接,但这些变量适用于所有 awk

    【讨论】:

      猜你喜欢
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 2019-03-25
      • 1970-01-01
      • 2011-11-07
      • 2014-02-28
      相关资源
      最近更新 更多