2

在此处使用 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"

}

4

2 回答 2

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
于 2012-12-20T00:32:30.767 回答
0

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

count=0
for var in `cat $1`
do
    count=`echo $count+1 | bc`
done
echo $count
于 2017-03-18T16:22:01.670 回答