如何将以下命令仅应用于文本文件的一部分?例如从开始到第5000行。
grep "^ A : 11 B : 10" filename | wc -l
我不能使用head然后应用上面的命令,因为文本文件很大。
答案 0 :(得分:2)
你可以尝试使用sed命令,我认为这对于大文件更好,从this问题和管道到grep。
sed -n 1,5000p file | grep ...
答案 1 :(得分:1)
您可以尝试组合-n(每行输出前缀为行号)和-m(限制匹配行数)。像这样:
grep -n -m 5000 pattern file.txt | grep -B 5000 "^5000:" | wc -l
首先grep搜索模式,添加行号并限制输出到前5000个匹配行(最坏情况:来自范围匹配模式的所有行)。第二个grep匹配行号5000,并打印此行之前的所有行。
我不知道它是否是更有效的解决方案