用于检索唯一单词并与标点符号一起计数的 Linux 命令

lyhabc 阅读:19 2024-10-24 08:47:37 评论:0

tr -c '[:alnum:]' '[\n*]' < 4300-0.txt | sort | uniq -c | sort -nr | head  

以下命令会检索唯一单词以及计数。我想检索标点符号以及唯一字数。

实现这个的方法是什么?

请您参考如下方法:

您可以使用 tee 拆分您的输入并分别提取标点符号和数字。

echo "Helo, world!" | 
{  
    tee >(tr -c '[:alnum:]' '\n' >&3) | 
    tr -c '[:punct:]' '\n' 
} 3>&1 | 
sed '/^$/d' | 
sort | uniq -c | sort -nr | head 

应该输出:

  1 world 
  1 Helo 
  1 ! 
  1 , 

一个简短的 sed 脚本似乎也可以工作:

echo "Helo, world! 
OK!" | 
sed ' 
    s/\([[:alnum:]]\+\)\([^[:alnum:]]\)/\1\n\2/g 
    s/\([[:punct:]]\+\)\([^[:punct:]]\)/\1\n\2/g 
    s/[^[:punct:][:alnum:]]/\n/g 
' | 
sed '/^$/d' | 
sort | uniq -c | sort -nr | head 

应该输出:

  2 ! 
  1 world 
  1 OK 
  1 Helo 
  1 , 


标签:linux
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号