我怎样才能{1000} 1000行到2000行,1000行或1000行的大文件的某个部分?grep
?
我不想将文件拆分成较小的文件。
答案 0 :(得分:4)
您可以使用sed
进行预处理。编辑:根据Kent的建议添加q
sed -n '1000,2000{p;2000q}' file.txt | grep 'abc'
第1000行到文件末尾
sed -n '1000,$p' file.txt | grep 'abc'
答案 1 :(得分:2)
作为@ravoori对sed
解决方案的一个小改进,将grep
重构为sed
:
sed '1000,$/pattern/!d;2000q' file.txt
如果变量中有模式,请使用双引号;
sed '1000,$/'"$pattern"'/!d;2000q' file.txt
或等同于Awk:
awk 'NR==2000{exit(0)}NR>=1000 && /pattern/' file.txt
或使用变量
awk -v pat="$pattern" 'NR==2000{exit(0)}NR>=1000 && $0~pat' file.txt
答案 2 :(得分:1)
我建议
head -2000 FILE.TXT | tail -1000 | grep XXX
作为最好的解决方案,因为head
不需要读取大文件,只需要前几千行。它基本上实现了q
解决方案中sed
所做的事情。