在终端中打印文件的特定行
Print specific lines of a file in Terminal
这看起来很傻,但我还没有找到执行此操作的工具,所以我想在尝试自己编写代码之前,我会问只是要确保它不存在:
是否有任何简单的方法来 cat
或 less
文件的特定行?
我希望这样的行为:
# -s == start && -f == finish
# we want to print lines 5 - 10 of file.txt
cat -s 5 -f 10 file.txt
即使是更简单的东西也会受到赞赏,但我只是不知道有任何工具可以做到这一点:
# print from line 10 to the end of the file
cat -s 10 file.txt
我认为这两个功能可以通过 head
、tail
和 wc -l
的组合轻松创建,但也许有内置函数可以做到这一点哪个我不知道?
是的,awk 和 sed 可以提供帮助
第 5 到 10 行
awk 'NR>4&&NR<11' file.txt
sed -n '5,10p' file.txt
从第 10 行到最后一行
awk 'NR>9' file.txt
sed -n '10,$p' file.txt
这看起来很傻,但我还没有找到执行此操作的工具,所以我想在尝试自己编写代码之前,我会问只是要确保它不存在:
是否有任何简单的方法来 cat
或 less
文件的特定行?
我希望这样的行为:
# -s == start && -f == finish
# we want to print lines 5 - 10 of file.txt
cat -s 5 -f 10 file.txt
即使是更简单的东西也会受到赞赏,但我只是不知道有任何工具可以做到这一点:
# print from line 10 to the end of the file
cat -s 10 file.txt
我认为这两个功能可以通过 head
、tail
和 wc -l
的组合轻松创建,但也许有内置函数可以做到这一点哪个我不知道?
是的,awk 和 sed 可以提供帮助
第 5 到 10 行
awk 'NR>4&&NR<11' file.txt
sed -n '5,10p' file.txt
从第 10 行到最后一行
awk 'NR>9' file.txt
sed -n '10,$p' file.txt