从多个文件返回第N行

时间:2018-02-11 14:44:55

标签: awk git-bash

给定一个包含多个.csv文件的文件夹,我想从每个文件返回第N行并写入新文件。

对于单个文件,我使用

    awk 'NR==5' file.csv

对于多个文件,我想

    ls *.csv | xargs awk 'NR==5'

...但是只返回列表中第一个文件的第5行。

谢谢!

1 个答案:

答案 0 :(得分:1)

请问您可以尝试关注并告诉我这是否对您有帮助(GNU > output_file应该帮助我相信):

FNR==5

如果您需要将输出转换为单个输出文件,请在上述命令的最后添加{print;}

说明:

print:在此处检查当前Input_file的行号是否为5,然后执行后面提到的操作。

awknextfilenextfile开箱即用的关键字,用于打印当前行,因此仅打印第5行。

awk:就像名字本身一样,很明显{{1}}会跳过当前Input_file中的所有行(因为我最后给了* .csv所以这意味着它会将所有csv文件传递给{{1}} 1比1)它将节省我们的时间,因为我们不想读取条目Input_file我们只需要第5行,我们得到它。