需要使用 grep word 命令的帮助

需要使用 grep word 命令的帮助

刚刚掌握 Linux 命令行,但在使用 grep 命令时遇到了困难。

我试图找出一个单词在文本文件的最后 1000 行中出现了多少次

我感觉我需要使用 grep 和管道,但想不通

答案1

如果您不想计算出现次数,而是计算匹配行数,请使用@heemayl 的答案。但是,如果您想计算每次出现次数(因此,算作word foo word2 次匹配,而不是 1 次),您可以执行以下操作:

tail -1000 file | grep -o word | wc -l

tail命令打印最后 1000 行,grep -o word搜索word并打印找到的每个案例(因此,如果匹配两次,它将打印两次)并wc -l计算返回的行数。

或者,你可以使用像 perl 这样的程序来进行计数:

tail -n 1000 file | perl -alne '$k+=grep{/word/} @F; END{print $k}'  

最后,请注意,这也会计算诸如 之类的内容wordsmith。要仅当您的模式形成整个单词时才进行匹配,请使用grep标志-w

tail -1000 file | grep -wo word | wc -l

或者

tail -n 1000 file | perl -alne '$k+=grep{/\bword\b/} @F; END{print $k}'

答案2

以下是一般模式:

tail -1000 file.txt | grep -c "word"

这将打印出名为 的文件最后 1000 行中包含模式“word”的行数file.txt。这里我们用来tail -1000获取文件的最后 1000 行,然后仅用于grep -c计算这些行中模式的出现次数。

相关内容