我如何根据某个字符在乳胶中分割行?

我如何根据某个字符在乳胶中分割行?

我有很多类似的行:

Jasmine、Kellyn、Shelly;Applebees

莎拉;沃尔玛

海伦、马克斯、萨姆;戴尔

这些名字中有很多是重复的。我需要找出使用最多的 10 个名字。我一直在尝试使用 cut -d"," restaurants.txt | sort | uniq -c | sort -rn | head -n 10

答案1

好吧,这并不漂亮,但至少它有效。

 cat restaurants.txt | sed 's/;.*//' |  tr "," "\n" | tr " " "\n" | grep -v '^$' |  sort | uniq -c | sort -r  

2 Sam
2 Max
1 Shelly
1 Sarah
1 Kellyn
1 Jasmine
1 Helen

说明:
sed 's/;.*//'删除分号后的所有文本,如 (; Applebees)

tr "," "\n"uniq 仅适用于每行,因此请用新行替换逗号

tr " " "\n"清除多余的空格,让它们单独占一行(可选)

grep -v '^$'删除所有空行

sort排序

uniq -c计数重复项

sort -f按降序排列

相关内容