在linux中获取N个行的多个文件

mau*_*au5 6 linux csv awk sed echo

我想要完成的任务是,我有这样的文件:

test1.csv test2.csv test3.csv等...

我想获得每个文件的第3行.现在,我可以使用awk获得第3行,或者像sed一样

echo | awk 'FNR == 3 { print; exit }' test1.csv >> last_file.csv 或使用sed或tail.

但是当我尝试在多个文件上执行此操作时,它无法获取行.我想这样做,

echo | awk 'FNR == 3 { print; exit }' test*.csv >> last_file.csv

我怎样才能做到这一点?

谢谢.

Ed *_*ton 11

摆脱无用echo,不正确exit和冗余print:

awk 'FNR == 3' test*.csv
Run Code Online (Sandbox Code Playgroud)

  • 在必要时,效率是需要解决的问题,没有任何一点使得脚本混乱,性能改进使得它不那么简洁和不便携,当它几乎肯定会在OP的瞬间运行时真实文件(当人们有非常大的文件要处理时,他们总是告诉我们)如果性能是一个问题,那么我们可以讨论选项和权衡. (2认同)