Linux 中awk命令实现将多个连续的字符替换为指定的一个字符

 

001、

[root@PC1 test]# ls
a.txt
[root@PC1 test]# cat a.txt                ## 测试数据
aa bbbbbb cc bb ww
xx yy           zz dd
jj     kk mm ss
[root@PC1 test]# awk '{sub("b+", "Q"); print $0}' a.txt       ## 将多个连续的b替换为Q
aa Q cc bb ww
xx yy           zz dd
jj     kk mm ss

 .

 

002、

[root@PC1 test]# ls
a.txt
[root@PC1 test]# cat a.txt        ## 测试数据
aa bbbbbb cc bb ww
xx yy           zz dd
jj     kk mm ss
[root@PC1 test]# cat -A a.txt
aa bbbbbb cc bb ww$
xx yy^I^Izz dd$
jj     kk mm ss$
[root@PC1 test]# awk '{sub("[\t ]+", " "); print $0}' a.txt
aa bbbbbb cc bb ww
xx yy           zz dd
jj kk mm ss
[root@PC1 test]# awk '{gsub("[\t ]+", " "); print $0}' a.txt        ## 将多个连续的空格和制表符替换为单个的空格
aa bbbbbb cc bb ww
xx yy zz dd
jj kk mm ss

 。

 

posted @ 2024-07-11 09:49  小鲨鱼2018  阅读(61)  评论(0编辑  收藏  举报