cam*_*amh 21
如果所有行都具有相同的长度,那么到目前为止最好的方法是使用dd(1)并给它一个跳过参数.
让块大小为每行的长度(包括换行符),然后你可以这样做:
$ dd if=filename bs=<line-length> skip=<line_no - 1> count=1 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
我们的想法是寻找过去所有前面的行(skip=<line_no - 1>)并读取一行(count=1).因为块大小设置为行长度(bs=<line-length>),所以每个块实际上是一行.重定向stderr,这样你就不会在最后得到烦人的统计数据.
这应该比通过程序读取所有行之前将行流式传输然后将它们丢弃一样高效,因为它dd会在文件中寻找您想要的位置并从文件中只读取一行数据.
Pau*_*sey 15
head -10 file | tail -1 虽然返回第10行可能很慢.
从这里开始
# print line number 52
sed -n '52p' # method 1
sed '52!d' # method 2
sed '52q;d' # method 3, efficient on large files
Run Code Online (Sandbox Code Playgroud)