编辑uniq-c(Bash)的输出
我有一个用编辑uniq-c(Bash)的输出,bash,Bash,我有一个用sort-f排序的单词列表。现在,我想使用uniq-c来获得一个没有重复单词但左侧有一个计数器的列表。我还希望带有数字的列与带有单词的列之间用制表符隔开 sort -f | uniq -c | sed $'s/\t */\t/g' 这是我的清单: Monday day Tuesday day Easter holiday Monday day christmas holiday Tuesday day Friday
sort-f
排序的单词列表。现在,我想使用uniq-c
来获得一个没有重复单词但左侧有一个计数器的列表。我还希望带有数字的列与带有单词的列之间用制表符隔开
sort -f | uniq -c | sed $'s/\t */\t/g'
这是我的清单:
Monday day
Tuesday day
Easter holiday
Monday day
christmas holiday
Tuesday day
Friday day
Thursday day
thanksgiving holiday
这是我想要的输出:
1 christmas holiday
1 Easter holiday
1 Friday day
2 Monday day
1 thanksgiving holiday
1 Thursday day
2 Tuesday day
我试着使用下面的命令,虽然我在数字前得到了一个制表符,而不是在数字和单词之间
sort -f | uniq -c | sed $'s/\t */\t/g'
为了获得所需的输出,我必须修改什么?您需要在捕获组中获取数字,并将其复制到替换组,以便将选项卡放在后面
sort -f days.txt | uniq -c | sed $'s/^ *\([0-9]*\) */\\1\t/'
uniq-c
不会将tab放在计数之前,它只会放空格。@lowerer$“…”
将shell进程转义序列放在字符串中,以便将\t
转换为tab。@Barmar啊,好的,谢谢。它似乎可以翻译\t
对我来说很好,没有$
。