命令在整个文件中计数字出现



我正在尝试计算文件中的单词出现。

如果一行多次出现单词,我将计算为1。

以下命令将为我提供输出,但是如果行有多次出现Word

grep -c "word" filename.txt

有一个衬里吗?

您可以使用grep -o显示确切的匹配,然后计算它们:

grep -o "word" filename.txt | wc -l

测试

$ cat a
hello hello how are you
hello i am fine
but
this is another hello
$ grep -c "hello" a    # Normal `grep -c` fails
3
$ grep -o "hello" a 
hello
hello
hello
hello
$ grep -o "hello" a | wc -l   # grep -o solves it!
4

将rs设置为较短的rs。

awk 'END{print NR-1}' RS="word" file

gnu awk允许使用多个管道命令在单个命令中完成:

awk -v w="word" '$1==w{n++} END{print n}' RS=' |n' file
cat file | cut -d ' ' | grep -c word

这假设文件中的所有单词在单词之间都有空间。如果有标点符号将单词与自身的串联串联,或者在单词和本身之间的一行上没有空格,它们将算作一个。

grep word filename.txt | wc -l

grep打印匹配的行,然后wc -l打印匹配的行数

相关内容

  • 没有找到相关文章