您的位置:首页 > 其它

sed去除前面空格

2012-02-24 12:48 169 查看
今天写一脚本时要去除字符串前面的空格,随便到网上找了个SED,如下:

sed 's/^[[:space:]]\+//'

然后我就用到了我的字符串中:

re=$x|sed 's/^[[:space:]]\+//'

echo $re

这时就奇怪了,就想不通为什么老是输出空格。

搞了半天没搞定,直接找master。

最后他直接说明显的有二个错误,

第一,管道符是把前面的输出当做后面的输入,而我前面木有输出,显然就不能把值传给SED,

第二,SED是直接打印在屏幕上的,是没有内容的,所以要加个执行符。

所以要想让$re打印出来,要改成如下:

re=`echo $x | sed 's/^[[:space:]]\+//'`

这时就可以看到输出了。

倒。。。。。。。。。

最后因为这样去除空格又要调用一个SED子进程,所以会造成资源浪费,所以最好直接在shell中做处理,自己到chinaunix上去问了问人,答案如下:

[joe@joe-laptop ~]$ a='Description:    CentOS release 5.5 (Final)'
[joe@joe-laptop ~]$ echo ${a#* }
CentOS release 5.5 (Final)


另外一种:

echo "Description:    CentOS release 5.5 (Final)"|awk -F: '{sub(/^  */,"",$2);print $2}'


本文出自 “西边太阳” 博客,请务必保留此出处http://thgenius.blog.51cto.com/1042803/788437
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: