查找文本文件中的所有标点符号并打印计数

Finding all punctuation in a text file & print count

我几乎可以计算出所有标点符号出现的次数,但是彼此紧挨着的标点符号字符会被算作一个。

像这样:

cat filename.txt |
tr -sc '[:punct:]' '\n' |
sort |
uniq -c |
sort -bnr`

打印出如下内容:

15 ,
 9 !
 5 .
 2 ;
 2 !"
 2 '
 1 -
 1 --
 1 :
 1 ?

明明只算标点符号,但是相邻的怎么区分呢?

这个:

tr -sc '[:punct:]' '\n' 

基本上,您在这里所做的就是用 \n 替换所有非标点字符。所以当两个标点字符之间没有这样的字符时,你会把它们放在一起[=13​​=]

你想要这样的东西:

cat filename.txt | tr -cd [:punct:] | fold -w 1 | sort | uniq -c | sort -bnr