示例文件
aa\bb\cc\dd\ee\ff\gg\hh\ii\jj aa\bb\cc\dd\ee\ll\gg\hh\ii\jj aa\bb\cc\dd\ee\ff\gg\hh\ii\jj
我想跳过第6场' ff'当比较一个唯一的行时,我也希望计算前面的重复行数。
我试了这个,没有任何运气:
sort -t'\' -k1,5 -k7 --unique xslin1 > xslout
预期输出
3 aa\bb\cc\dd\ee\*\gg\hh\ii\jj
答案 0 :(得分:0)
$ awk -F'\' -v OFS='\' '{$6="*"} 1' xslin1 | sort | uniq -c
3 aa\bb\cc\dd\ee\*\gg\hh\ii\jj
使用--unique
时,sort
仅输出唯一的行,但不计算它们。一个人需要uniq -c
。此外,sort
输出所有唯一的行,而不仅仅是那些排序为相同值的行。
上述解决方案采用简单的方法将第六个字段分配给*
,如您在输出中所需,然后使用标准管道sort | uniq -c
来生成唯一行的计数。
答案 1 :(得分:0)
你可以在一个awk中执行此操作:
awk 'BEGIN{FS=OFS="\\"} {$6="*"} uniq[$0]++{}
END {for (i in uniq) print uniq[i] "\t" i}' file
3 aa\bb\cc\dd\ee\*\gg\hh\ii\jj