计算文件中指定的单词
Count specified words in file
我想制作脚本,找出我选择的文件中有多少个单词。
这是我的脚本:
#!/bin/bash
echo "Iveskite reiksme kurios kurios kurios ieskosime faile"
read reiksme
echo "Nurodykite faila kuriame ieskosime reiksmes"
read failas
kiek=$(awk '/$reiksme/' $failas | wc -l)
echo $kiek > kiek.txt
如果 $failas 包含如下行:
$reiksme
$reiksme
$reiksme
那没关系,但是如果 $failas
包含这样的行:
$reiksme $reiksme
random word $reiksme $reiksme
random random $reiksme
然后我的脚本无法统计多少字
awk 仅按行拆分。您可以分几步完成,但可能还有比这更简单的方法:
kiek=$(sed -e 's/\s/\n/g' $failas | grep "\b${reiksme}\b" | wc -l)
用换行符替换所有空格,然后使用 grep(或者你喜欢的 awk)找到你要查找的内容,然后计算它们
我自己找到了答案。我刚改了
kiek=$(awk '/$reiksme/' $failas | wc -l)
至
kiek=$(tr -cs 'A-Za-z' '\n' < $failas | grep -c "$reiksme")
使用 grep
执行此操作的最佳方法是使用 -o
选项,如 this post 中所述。为您整理:
kiek=$(grep -o "${reiksme}" | wc -l)
我想制作脚本,找出我选择的文件中有多少个单词。
这是我的脚本:
#!/bin/bash
echo "Iveskite reiksme kurios kurios kurios ieskosime faile"
read reiksme
echo "Nurodykite faila kuriame ieskosime reiksmes"
read failas
kiek=$(awk '/$reiksme/' $failas | wc -l)
echo $kiek > kiek.txt
如果 $failas 包含如下行:
$reiksme
$reiksme
$reiksme
那没关系,但是如果 $failas
包含这样的行:
$reiksme $reiksme
random word $reiksme $reiksme
random random $reiksme
然后我的脚本无法统计多少字
awk 仅按行拆分。您可以分几步完成,但可能还有比这更简单的方法:
kiek=$(sed -e 's/\s/\n/g' $failas | grep "\b${reiksme}\b" | wc -l)
用换行符替换所有空格,然后使用 grep(或者你喜欢的 awk)找到你要查找的内容,然后计算它们
我自己找到了答案。我刚改了
kiek=$(awk '/$reiksme/' $failas | wc -l)
至
kiek=$(tr -cs 'A-Za-z' '\n' < $failas | grep -c "$reiksme")
使用 grep
执行此操作的最佳方法是使用 -o
选项,如 this post 中所述。为您整理:
kiek=$(grep -o "${reiksme}" | wc -l)