快速unix命令显示文件中间的特定行?
试图调试服务器的问题,我唯一的日志文件是一个20GB的日志文件(甚至没有时间戳!为什么人们使用System.out.println()
作为日志记录?在生产?!)
使用grep,我找到了一个我想看看的文件的区域,行347340107。
除了做类似的事情
head -<$LINENUM + 10> filename | tail -20
...需要head
读取日志文件的前3.47亿行,是否有快速简单的命令将线路347340100 - 347340200(例如)转储到控制台?
更新我完全忘了grep可以打印匹配的上下文......这很好。 谢谢!
用GNU-grep你可以说
grep --context=10 ...
如果你知道行号但没有别的(不可能),我找到了另外两个解决方案:
假设你需要20到40行,
sed -n '20,40p;41q' file_name
要么
awk 'FNR>=20 && FNR<=40' file_name
# print line number 52
sed -n '52p' # method 1
sed '52!d' # method 2
sed '52q;d' # method 3, efficient on large files
方法3对大文件有效
最快的方式来显示特定的行
链接地址: http://www.djcxy.com/p/19651.html上一篇: Quick unix command to display specific lines in the middle of a file?