我有以下几行:
123;123;#rss
123;123;#site #design #rss
123;123;#rss
123;123;#rss
123;123;#site #design
并且需要计算每个标 checkout 现的次数,请执行以下操作:
grep -Eo '#[a-z].*' ./1.txt | tr“\”“\n”| uniq-c
即首先从字符串中只选择标签,然后将它们分解并计数。
输出:
1 #rss
1 #site
1 #design
3 #rss
1 #site
1 #design
而不是预期的:
2 #site
4 #rss
2 #design
问题似乎出在不可打印的字符上,这使得计数不正确。或者是别的什么?谁能提出正确的解决方案?
最佳答案
uniq -c
仅适用于排序输入。
此外,您可以通过将正则表达式更改为 #[a-z]*
来删除 tr
。
grep -Eo '#[a-z]*' ./1.txt | sort | uniq -c
打印
2 #design
4 #rss
2 #site
正如预期的那样。
关于grep - 字数统计及其输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66139251/