我有一个很长的文件,我想打印,跳过前1,000,000行,例如。
我查看了猫的手册页,但我没有看到任何选项可以这样做。我正在寻找一个命令来执行此操作或一个简单的Bash程序。
我有一个很长的文件,我想打印,跳过前1,000,000行,例如。
我查看了猫的手册页,但我没有看到任何选项可以这样做。我正在寻找一个命令来执行此操作或一个简单的Bash程序。
当前回答
我需要做同样的事情,并找到了这个线程。
我试过“tail -n +”,但它只是打印了所有内容。
更多的+行在提示符上工作得很好,但结果是在无头模式下运行时表现完全不同(cronjob)。
最后我自己写了这个:
skip=5
FILE="/tmp/filetoprint"
tail -n$((`cat "${FILE}" | wc -l` - skip)) "${FILE}"
其他回答
你可以使用head和tail命令:
head -n <num> | tail -n <lines to print>
其中num是1e6 +想要打印的行数。
如果你想跳过前两行:
tail -n +3 <filename>
如果你想跳过第一个x行:
tail -n +$((x+1)) <filename>
我需要做同样的事情,并找到了这个线程。
我试过“tail -n +”,但它只是打印了所有内容。
更多的+行在提示符上工作得很好,但结果是在无头模式下运行时表现完全不同(cronjob)。
最后我自己写了这个:
skip=5
FILE="/tmp/filetoprint"
tail -n$((`cat "${FILE}" | wc -l` - skip)) "${FILE}"
如果你想看到前10行,你可以使用sed,如下所示:
sed -n '1,10 p' myFile.txt
或者如果你想看到从20到30的行,你可以使用:
sed -n '20,30 p' myFile.txt
我发现删除文件前十行最简单的方法:
$ sed 1,10d file.txt
在一般情况下,X是要删除的初始行数,这归功于评论者和编辑:
$ sed 1,Xd file.txt