我想制作脚本,发现我选择的几个单词在我选择的文件中。
这是我的脚本:
#!/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
然后我的脚本无法计算多少个单词。
尴尬仅在线上分裂。您可以通过几个步骤进行操作,尽管有比这更容易的方法:
kiek=$(sed -e 's/s/n/g' $failas | grep "b${reiksme}b" | wc -l)
用newline替换所有空格,然后使用grep(如果愿意的话,或者您的尴尬)查找所需的内容,然后计算它们
我自己找到了答案。我刚刚更改
kiek=$(awk '/$reiksme/' $failas | wc -l)
to
kiek=$(tr -cs 'A-Za-z' 'n' < $failas | grep -c "$reiksme")
使用grep
进行此操作的最佳方法是使用本文中所述的-o
选项。将其放在一起:
kiek=$(grep -o "${reiksme}" | wc -l)