编辑uniq -c(Bash)的输出

时间:2018-10-11 02:24:04

标签: bash

我有一个用sort -f排序的单词列表。现在,我想使用uniq -c来获得一个列表,其中没有重复的单词,但左侧有一个计数器。我还希望带有数字的列由制表符与带有单词的列分隔。

这是我的列表:

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'

为了获得所需的输出,我必须进行哪些修改?

1 个答案:

答案 0 :(得分:1)

您需要在捕获组中获取该号码并将其复制到替换项,以便可以在其后放置标签。

sort -f days.txt | uniq -c | sed $'s/^ *\([0-9]*\) */\\1\t/'

uniq -c不在制表符之前放置制表符,它只是放置空格。