apa*_*jja 8 sed awk text-processing
副本是不同大小写文本的组合。
我需要计算重复的数量(不区分大小写),然后我需要通过选择具有最高重复的案例来删除重复。
下面的例子:
hot chocolate
hot chocolate
hot chocolate
Hot Chocolate
Hot Chocolate
Hot Chocolate
Hot Chocolate
Hot Chocolate
Xicolatada
Xicolatada
Xicolatada
Xicolatada
XICOLATADA
XICOLATADA
Run Code Online (Sandbox Code Playgroud)
应该变成:
Hot Chocolate, 8
Xicolatada, 6
Run Code Online (Sandbox Code Playgroud)
这个问题类似于这一个,但我需要选择的情况下具有最高重复数和不区分大小写。
roc*_*cky 10
还有uniq --ignore-case --count | sort --numeric --reverse:
sort | uniq -ic /tmp/foo.txt | sort -nr
8 hot chocolate
6 Xicolatada
Run Code Online (Sandbox Code Playgroud)
并切换放置逗号的顺序,将此管道添加到末尾:
... | sed -e 's/^ *\([0-9]*\) \(.*\)/\2, \1/'
Run Code Online (Sandbox Code Playgroud)
请参阅下面的第一条评论,了解为什么我们有领先的排序。
我会tolower()用来使所有项目小写。然后是将它们存储在数组中a[]然后打印结果的问题:
$ awk '{a[tolower($0)]++} END {for (i in a) print i, a[i]}' file
xicolatada 6
hot chocolate 8
Run Code Online (Sandbox Code Playgroud)
要以逗号分隔格式输出,请添加-v OFS=,.
| 归档时间: |
|
| 查看次数: |
5840 次 |
| 最近记录: |