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上去问了问人,答案如下:
另外一种:
本文出自 “西边太阳” 博客,请务必保留此出处http://thgenius.blog.51cto.com/1042803/788437
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
相关文章推荐
- 关于sed命令去除文本当中每个字段前后空格及tab效率低下的解决办法
- 快捷去除代码前面的空格(变成了点)
- 使用vim/sed去除网上copy的源代码行号和空格
- sed去除行首空格
- 如何使用java正则表达式去除掉字符串前面的空格
- sed 去除所有空格
- asp.net后台修改title值,去除title标题内容前面的空格
- vim中使用sed去除网上copy的源代码行号和空格
- 正则 4000 表达式的使用--去除字符串中空格
- CString的trimleft,trimright和Trim 去除空格
- 字符串——去除多余空格和首字母大写
- jquery $.trim()去除字符串空格
- sed实战之——删除空行(包括由空格组成的空行)
- java去除字符串中的空格\t、回车\n、换行符\r、制表符\t
- java去除字符串空格
- oracle中如何对字符串进行去除空格的方法
- 去除sublime中emmet中后面的空格
- Linux替换变量中包含空格 sed: -e expression #1, char 6: unterminated `s' command
- 去除空格,回车,空格的方法
- [Angular Directive] 输入框禁止为空字符串与自动去除空格指令