这样做是否有"规范"方式?我一直在使用head -n | tail -1哪种技巧,但我一直想知道是否有一个Bash工具专门从文件中提取一行(或一系列行).
"规范"是指一个程序,其主要功能就是这样做.
给定一个名为"people.txt"的文本文件,其中包含:
Anne
Bob
Carl
Daphne
Erwin
Gary
Heather
Run Code Online (Sandbox Code Playgroud)
如何使用sed命令或类似的one-liner,它仅指定一组非连续的行号,以便将内容过滤到此结果:
Bob
Erwin
Heather
Run Code Online (Sandbox Code Playgroud)
(注意:忽略它们按字母顺序排列的事实)
请注意,我使用的真实文件有超过100K行,所以答案应该考虑效率.
我知道我可以用:
sed '5q;d' people.txt
Run Code Online (Sandbox Code Playgroud)
只得到第5行("Erwin"),但是这个参数有变化,我可以在其中指定任意行号列表吗?
我认为单独使用sed是可能的,但即使在通过阅读man sed之后我也无法解决这个问题.我一直在寻找其他非常接近这样做的答案,但几乎所有答案都只涉及获得一行或连续的行(一系列行),或使用更复杂的bash脚本; 例如,"快速unix命令显示文件中间的特定行?" 和"如何在Unix中打印文件中的特定行?" .