我有一组文本文件,我想通过在每个文件上运行bash脚本来显示第12-14行。
对于其中一个文件,这有效:
tail -14 | head -11
但由于其他文件的长度不同,我无法对它们运行相同的脚本。
我正在寻找输出文本文件的第12-24行的命令是什么?
答案 0 :(得分:5)
将sed
与-n
参数
sed -n 12,24p <FILENAME>
答案 1 :(得分:1)
对于一个有趣的纯Bash(≥4)可能性:
mapfile -t -s 11 -n 13 lines < file
printf '%s\n' "${lines[@]}"
这将跳过前11行(包含-s 11
)并读取13行(包含-n 13
)并将每行存储在数组lines
的字段中。
答案 2 :(得分:0)
使用awk
:
awk '12<= NR && NR <= 24' file
在awk
中,NR
是行号。上述条件坚持NR
大于或等于12且小于或等于24.如果是,则打印该行。否则,它不是。
在达到上限线后停止读取文件会更有效。这个解决方案可以做到:
awk 'NR>24 {exit;} NR>=12' file