linux 中 awk命令实现将文本中多个连续的空格或者制表符转换为一个空格或者制表符

发布时间 2023-10-10 11:07:34作者: 小鲨鱼2018

 

001、

[root@pc1 test01]# ls
a.txt
[root@pc1 test01]# cat a.txt             ## 测试数据
001 002      003 004 005
006 007    008 009 010
011 012 013 014 015
016             017 018 019 020
021 022    023 024               025
026 027         028             029 030
[root@pc1 test01]# cat -A a.txt     ## 查看文本中的间隔符
001 002      003 004 005$
006 007    008 009 010$
011 012 013 014 015$
016 ^I^I017 018 019 020$
021 022    023 024  ^I^I 025$
026 027  ^I028 ^I^I029 030$
[root@pc1 test01]# awk '{$1 = $1; print $0}' a.txt  ## 将多个连续的空格或者制表符转换为一个制表符
## $N = $N的动作启动了awk按字段处理的机制,自动将多个连续的空格或者制表符转换为默认的空格输出间隔符
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030

 。