显示所有扩展名为 .txt 的文件中的一组特定行

显示所有扩展名为 .txt 的文件中的一组特定行

我如何打印当前目录中名称以 结尾的每个文件的特定行(例如第 7 行到第 15 行).txt

我知道 7 和 15 是这样的

awk 'FNR==7 || FNR==15' *.txt 

但是如果我想从 7 点到 15 点我该怎么做?

答案1

用于sed打印.txt当前目录中所有文件的第7至第15行:

for i in *.txt; do sed -n '7,15 p' "$i"; done

这里7,15表示打印的行范围sed,在本例中是从 7 到 15。


正如你使用的那样awk

awk 'FNR>=7 && FNR<=15' *.txt

head和的组合tail

for i in *.txt; do tail -n +7 "$i" | head -9; done

或者@steeldriver如上所述,使用较新的 GNU sed(任何受支持的 Ubuntu 版本都有),您可以执行以下操作:

sed -sn '7,15 p' *.txt

这里-s是将每个文件分别处理,而不是将它们全部组合成一个单独的流。

相关内容