shell 去空格,去掉字符串前后空格(awk、sed 、eval)
·
正则表达式说明:
^\s+ 匹配行首一个或多个空格
\s+$ 匹配行末一个或多个空格
^\s+|\s+$ 同时匹配行首或者行末的空格
1、awk 去空格
方法1:
[root@linux ~]# echo " A B C " | awk '$1=$1'
A B C
这个方法有 bug ,往下看
[root@linux ~]# echo " 1 " | awk '$1=$1'
1
[root@linux ~]# echo " 0 " | awk '$1=$1'
如果内容是 1 ,就是正常的,可以去空格,
如果内容是 0 ,就没有输出。
方法2:
[root@localhost ~]# echo ' A B C ' | awk '{gsub(/^\s+|\s+$/, "");print}'
A B C
方法3:
[root@linux ~]# echo ' A B C ' | awk '{sub(/^ */, "");sub(/ *$/, "")}1'
A B C
2、sed 去空格
[root@linux ~]# echo ' A B C ' | sed -e 's/^[ ]*//g' | sed -e 's/[ ]*$//g'
A B C
3、eval 去空格
[root@local ~]# eval echo " A B C "
A B C
更多推荐




所有评论(0)