uniq除非计数中的位数超过7位,否则from 之前会带有空格,因此您需要执行以下操作:
uniq -c | sort -nr | cut -c 9-
使列(字符位置)向上9。或者您可以使用
sed:
uniq -c | sort -nr | sed 's/^.{8}//'要么:
uniq -c | sort -nr | sed 's/^ *[0-9]* //'
当重复计数达到10,000,000或更多时,第二种选择是可靠的;如果您认为这可能是个问题,那么它可能比
cut替代方法更好。无疑还有其他选择。
注意:计数是通过在Mac OS X 10.7.3上进行实验确定的,但使用的
uniq是
coreutils8.3版本的GNU 。BSD在
uniq-c产生一位数之前产生了3个前导空格。POSIX规范说来自的输出
uniq-c应格式化为:
printf("%d %s", repeat_count, line);不会有任何空白。鉴于输出格式可能存在这种差异,
sed带有
[0-9]正则表达式的脚本是处理以下观察值和理论输出的变化的最可靠方法
uniq -c:
uniq -c | sort -nr | sed 's/^ *[0-9]* //'



