问问题
1350 次
5 回答
3
一个纯粹的 bash 解决方案:
while IFS= read -r l; do
l=${l//[?,。]/}
echo "${#l}"
done < file
于 2013-11-16T10:37:48.253 回答
2
或更简单:
tr -d [?,,。] <file | wc -m
于 2013-11-16T01:31:05.097 回答
2
尝试
sed 's/[,。?]//g' file | perl -C -nle 'print length'
该sed
部分删除不需要的字符,该perl
部分计算剩余的字符。
于 2013-11-15T06:23:51.663 回答
2
一种方法是从流中删除这些字符,然后使用wc -m
. 这是一个使用 perl 删除字符的示例:
perl -pe 's/(\?|,|,|。)//g' file.txt | \
while read -r line; do
printf "$line" | wc -m ;
done
于 2013-11-15T06:24:42.017 回答
1
一个简单的解决方案,接近这个,但使用awk
:
sed 's/[?,。]//g' file | awk '{ print length($0) }'
于 2013-11-15T08:01:51.137 回答