【发布时间】:2019-05-29 09:23:59
【问题描述】:
我想用只有 一个 行代码来计算一个单词在文件中的出现次数。示例:对于输入:“hi, welcome to the himalaya. hihi” “hi” 输出将是 4(因为单词“hi”出现了 4 次)
我尝试使用 tr 和 grep,但它不会计算两次“hihi”,而只会计算一次。
tr 'WORD' '\n' < $1 | grep $2 | wc -l
对于上面给出的示例,输出是 3 而不是 4。 谢谢!
【问题讨论】:
-
grep -o "$2" "$1" | wc -l? (如果$1是一个文件名...) -
perl -nE 'BEGIN { $/ = shift } END { say $. - ($. && 1) }' "$2" "$1"? -
@GunTop 如果
hihi是 2his 那么你不算单词,你算的是字符串。单词是由非单词构成字符(标点符号、空格等)分隔的单词组成字符(通常是字母数字加下划线)的字符串。在计算单词时,hi只在输入"hi, welcome to the himalaya. hihi"中出现一次。 -
谢谢大家,伙计们!你真棒。我会试试这些代码!