linux 中实现按照行压缩连续的重复

 

001、

(base) [b20223040323@admin1 test2]$ ls
a.txt
(base) [b20223040323@admin1 test2]$ cat a.txt    ## 测试数据
er kj ab ab ab jk ab ab uy
dd xy xy xy xy xy mn mn mn
ue 87 87 87 _k _k jh rt rt
(base) [b20223040323@admin1 test2]$ awk '{temp=$1; printf("%s ", $1); for(i = 1; i <= NF; i++) {if($i == temp){printf("")} else {printf("%s ", $i); temp=$i}}{printf("\n")}}' a.txt
er kj ab jk ab uy                    ## 按照行压缩连续的重复
dd xy mn
ue 87 _k jh rt
(base) [b20223040323@admin1 test2]$ awk '{temp=$1; printf("%s ", $1); for(i = 1; i <= NF; i++) {if($i == temp){printf("")} else {printf("%s ", $i); temp=$i}}{printf("\n")}}' a.txt | cat -A
er kj ab jk ab uy $                 ## 末尾多出一个空格
dd xy mn $
ue 87 _k jh rt $
(base) [b20223040323@admin1 test2]$ awk '{temp=$1; printf("%s ", $1); for(i = 1; i <= NF; i++) {if($i == temp){printf("")} else {printf("%s ", $i); temp=$i}}{printf("\n")}}' a.txt | sed 's/.$//' | cat -A
er kj ab jk ab uy$                   ## 删除末尾的空格
dd xy mn$
ue 87 _k jh rt$

 

posted @ 2023-04-21 21:02  小鲨鱼2018  阅读(12)  评论(0编辑  收藏  举报