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
。