不使用wc计算文件中的单词

时间:2012-11-30 03:24:35

标签: shell unix

在这里使用shell脚本,尝试在不使用wc命令的情况下计算文件中的单词/字符/行数。我可以把文件分成几行并且很容易计算,但是我在这里努力获取单词和字符。

#define word_count function
count_stuff(){
    c=0
    w=0
    l=0
    local f="$1"
    while read Line
    do
        l=`expr $line + 1`
        # now that I have a line I want to break it into words and characters???
    done < "$f"
    echo "Number characters:  $chars"
    echo "Number words: $words"
    echo "Number lines: $line"

}

2 个答案:

答案 0 :(得分:2)

至于字符,请尝试此操作(将echo“test”调整到输出的位置):

expr `echo "test" | sed "s/./ + 1/g;s/^/0/"`

至于行,试试这个:

expr `echo -e "test\ntest\ntest" | sed "s/^.*$/./" | tr -d "\n" | sed "s/./ + 1/g;s/^/0/"`

===

至于你的代码,你想要这样的东西来计算单词(如果你想完全原始的话):

while read line ; do
 set $line ;
 while true ; do
  [ -z $1 ] && break
  l=`expr $l + 1`
  shift ;
 done ;
done

答案 1 :(得分:0)

您可以使用以下Bash shell脚本执行此操作:

count=0
for var in `cat $1`
do
    count=`echo $count+1 | bc`
done
echo $count