Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Uniq在比较行时跳过行的中间部分_Linux_Bash - Fatal编程技术网

Linux Uniq在比较行时跳过行的中间部分

Linux Uniq在比较行时跳过行的中间部分,linux,bash,Linux,Bash,样本文件 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 预期产量 3 aa\bb\cc\dd\ee\*\gg\hh\ii\jj 3 aa\bb\cc\dd\ee\*\gg\hh\ii\jj 讨论 使用--unique,排序只输出唯一的行,但不计算它们。为此,需要uniq-c。此外,sort输出所有唯一的行,而不仅仅是那些排序为相同值的行 上述解决方案采用了一种

样本文件

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 预期产量

3 aa\bb\cc\dd\ee\*\gg\hh\ii\jj 3 aa\bb\cc\dd\ee\*\gg\hh\ii\jj 讨论 使用
--unique
排序
只输出唯一的行,但不计算它们。为此,需要
uniq-c
。此外,
sort
输出所有唯一的行,而不仅仅是那些排序为相同值的行


上述解决方案采用了一种简单的方法,即根据您在输出中的需要,将第六个字段指定给
*
,然后使用标准管道
sort | uniq-c
,生成唯一行的计数。

您可以在一个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
$ awk -F'\' -v OFS='\' '{$6="*"} 1' xslin1 | sort | uniq -c
      3 aa\bb\cc\dd\ee\*\gg\hh\ii\jj
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