我有一个很长的文件,我想打印,跳过前1,000,000行,例如。
我查看了猫的手册页,但我没有看到任何选项可以这样做。我正在寻找一个命令来执行此操作或一个简单的Bash程序。
我有一个很长的文件,我想打印,跳过前1,000,000行,例如。
我查看了猫的手册页,但我没有看到任何选项可以这样做。我正在寻找一个命令来执行此操作或一个简单的Bash程序。
当前回答
你可以使用head和tail命令:
head -n <num> | tail -n <lines to print>
其中num是1e6 +想要打印的行数。
其他回答
你需要尾巴。一些例子:
$ tail great-big-file.log
< Last 10 lines of great-big-file.log >
如果你真的需要跳过特定数量的“第一行”,请使用
$ tail -n +<N+1> <filename>
< filename, excluding first N lines. >
也就是说,如果你想跳过N行,你开始打印第N+1行。例子:
$ tail -n +11 /tmp/myfile
< /tmp/myfile, starting at line 11, or skipping the first 10 lines. >
如果你只想看到最后几行,可以省略“+”:
$ tail -n <N> <filename>
< last N lines of file. >
cat < File > | awk '{if(NR > 6) print $0}'
你可以使用head和tail命令:
head -n <num> | tail -n <lines to print>
其中num是1e6 +想要打印的行数。
如果你想跳过前两行:
tail -n +3 <filename>
如果你想跳过第一个x行:
tail -n +$((x+1)) <filename>
如果您的系统上有GNU tail可用,您可以执行以下操作:
tail -n +1000001 huge-file.log
它是你想要的+字符。引用手册页中的内容:
如果K的第一个字符(字节数或行数)是a ' +',从每个文件开头的第k项开始打印。
因此,正如注释中所指出的那样,输入+1000001开始打印前1,000,000行之后的第一项。