shell - 为什么 uniq -c 输出带有空格而不是\t?

标签 shell awk uniq

我使用 uniq -c 一些文本文件。
它的输出是这样的:

123(space)first word(tab)other things
  2(space)second word(tab)other things

....

所以我需要提取总数(如上面的 123 和 2),但我不知道如何提取,因为如果我按空格分割这条线,它会像这样 ['123', 'first', 'word(tab)other', 'things'] .
我想知道为什么它不带标签输出?

以及如何在shell中提取总数? (我终于用python解压了,WTF)

更新 : 对不起,我没有正确描述我的问题。我不想对总数求和,我只想用(制表符)替换(空格),但它不会影响单词中的空格,因为我仍然需要之后的数据。像这样:
123(tab)first word(tab)other things
  2(tab)second word(tab)other things

最佳答案

尝试这个:

uniq -c | sed -r 's/^( *[^ ]+) +/\1\t/'

关于shell - 为什么 uniq -c 输出带有空格而不是\t?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11670393/

相关文章:

linux - "cd"在 shell 脚本中不起作用

linux - Shell 脚本计算字符串出现次数

linux - uniq 命令未检测到重复行

linux - 大量文件的快速 Linux 文件计数

linux - 如何使用 Linux 终端命令将 Eclipse 上的项目 View 更改为分层 View ?

regex - 格式化 awk 输出

bash - 尝试格式化音乐文件的名称

linux - 删除文本文件中的奇数行

shell - 从 csv 文件中的列获取唯一值

bash - 为列的每个唯一值输出整行一次(Bash)