免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8646 | 回复: 0
打印 上一主题 下一主题

bash 中 trim 字符串(去除首尾空格) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-28 00:46 |只看该作者 |倒序浏览
    在 bash 下如何去除一个字符串首尾的空格(也就是 trim)呢?其实有一个简单的办法:
$ echo $STR
注意 $STR 不要带引号。因为 $STR 展开后,会作为 echo 的参数。那么 echo 在处理参数的时候,自然会忽略首尾的空格。不过此种方法有个小问题,那就是 echo 输出的结果,会将字符串中间的连续空格变成一个空格。例如 $STR 为 "   any    string    " 的话,那么输出将是 "any string"。
    既然这种方法有这么个小问题,我就想是否可以用其他办法。最后想到的还是用 grep 来做。如下:$ echo "$STR" | grep -o "[^ ]\+\( \+[^ ]\+\)*"
用 "[^ ]+( +[^ ]+)*" 去匹配除首尾空格外的部分,然后 -o 仅输出匹配的部分,这样就达到去除首尾空格的效果了。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/24581/showart_1882388.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP