有一个应该处理传入文本文件的shell脚本。计算输入文件中字符串的出现次数
此文本文件包含分割成多行的字符串,并且每个字符串都存在多次。
shell脚本需要读取此文本文件并输出每个字符串的字符串和计数。
考虑文本文件是:
添
添
马克
马克
艾伦
艾伦
艾伦
输出应该是这样的:
蒂姆出现2次
马克出现2次
阿伦出现3次
权现在,我能够o打印出现字符串,但重复出现字符串的次数,即“Tim出现2次”会被打印两次。我试图用NULL替换一个字符串,只要我计算它的发生,但由于某种原因,sed不工作,因为也许我没有在正确的位置调用它(或以正确的方式)
#!/bin/bash
INPUT_FILE="$1"
declare -a LIST_CHARS
if [ $# -ne 1 ]
then
echo "Usage: $0 <file_name>"
exit 1
fi
if [ ! -f $INPUT_FILE ]
then
echo "$INPUT_FILE does not exists. Please specify correct file name"
exit 2
fi
while read line
do
while read i
do
echo $line
count=`grep -i $line | wc -l`
echo "String $line appears $count times"
done < $INPUT_FILE
done < $INPUT_FILE
+1,尽管不是'/./',您可以使用'NF '这将跳过空行就好了。 –
@jaypal很好的建议。并且能够更好地处理带有空白的行。编辑。 –