给定一个包含多个.csv文件的文件夹,我想从每个文件返回第N行并写入新文件。
对于单个文件,我使用
awk 'NR==5' file.csv
对于多个文件,我想
ls *.csv | xargs awk 'NR==5'
...但是只返回列表中第一个文件的第5行。
谢谢!
答案 0 :(得分:1)
请问您可以尝试关注并告诉我这是否对您有帮助(GNU > output_file
应该帮助我相信):
FNR==5
如果您需要将输出转换为单个输出文件,请在上述命令的最后添加{print;}
。
说明:
print
:在此处检查当前Input_file的行号是否为5,然后执行后面提到的操作。
awk
:nextfile
是nextfile
开箱即用的关键字,用于打印当前行,因此仅打印第5行。
awk
:就像名字本身一样,很明显{{1}}会跳过当前Input_file中的所有行(因为我最后给了* .csv所以这意味着它会将所有csv文件传递给{{1}} 1比1)它将节省我们的时间,因为我们不想读取条目Input_file我们只需要第5行,我们得到它。