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