Grep只是文本文件的一部分

时间:2013-09-15 00:49:05

标签: linux grep text-processing

如何将以下命令仅应用于文本文件的一部分?例如从开始到第5000行。

grep "^  A : 11  B : 10" filename | wc -l

我不能使用head然后应用上面的命令,因为文本文件很大。

2 个答案:

答案 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,并打印此行之前的所有行。

我不知道它是否是更有效的解决方案

相关问题