linux – 计算输入文件中字符串的出现次数
发布时间:2020-12-14 01:37:56 所属栏目:Linux 来源:网络整理
导读:有一个 shell脚本应该处理传入的文本文件. 此文本文件包含多行分割的字符串,每个字符串多次出现. shell脚本需要读取此文本文件并输出每个字符串的String和count. 考虑文本文件是: Tim tim Mark MARk Allen ALLen allEN 输出应该是这样的: Tim appears 2 ti
有一个
shell脚本应该处理传入的文本文件.
此文本文件包含多行分割的字符串,每个字符串多次出现. shell脚本需要读取此文本文件并输出每个字符串的String和count. 考虑文本文件是:
输出应该是这样的:
现在,我能够打印字符串的出现,但是重复字符串出现的次数,即“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 解决方法
经典的awk解决方案如下:
$awk 'NF{ count[ toupper( $0 ) ]++} END{ for ( name in count ) { print name " appears " count[ name ] " times" }; }' input (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |