• 全部
  • 系统维护与使用
  • 应用程序开发
  • 内核源代码
  • 驱动程序开发
  • CPU和硬件区
  • UNIX文化
  • Solaris
  • Power Linux
  • 问答

一个简单的去掉空格的问题

cxb1004 浙江海翕信息技术有限公司 技术总监/研发总监  2010-10-10 11:12:28
Hi,我刚刚开始学shell,遇到一个问题

比如$string,这里面赋值如下

$string = "abc des sss"

我要怎么去掉这个变量里的空格呢?

希望能给出完成的命令,谢谢啦
...全文
89 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
masmaster 2010-10-10
echo 'a b c.txt' | tr ' ' '_' ;单字符这样可以, 如果多个空格的话,这样:
echo 'a b c.txt' | tr -s ' ' | tr ' ' '_' ;当然, 用sed也可。
回复
cxb1004 2010-10-10
天,就怕这个

不过谢谢了
echo 'a b c.txt' | tr -d ' '
可用,
在问一句,如果是要把空格替换成“_”的话需要怎么写呢?

[Quote=引用 7 楼 masmaster 的回复:]
ksh不支持子串替换。那么就需要借助外部工具, 诸如;sed,awk,tr等
[/Quote]
回复
masmaster 2010-10-10
ksh不支持子串替换。那么就需要借助外部工具, 诸如;sed,awk,tr等
回复
cxb1004 2010-10-10
是ksh,这个。。弱弱问一句,版本差异很大吗?


[Quote=引用 5 楼 masmaster 的回复:]
你用的不是bash吧
[/Quote]
回复
masmaster 2010-10-10
你用的不是bash吧
回复
cxb1004 2010-10-10
写了代码试了一下:
string="a b c.txt"
echo ${string// }

运行出错。。。



[Quote=引用 1 楼 masmaster 的回复:]
echo ${string// }
[/Quote]
回复
masmaster 2010-10-10
echo 'a b c.txt' | tr -d ' '
回复
cxb1004 2010-10-10
不是很明白,如果我需要在命令行里面把"a b c.txt"->"abc.txt"
用这个命令要怎么做?

[Quote=引用 1 楼 masmaster 的回复:]
echo ${string// }
[/Quote]


能详细解释一下吗?
回复
masmaster 2010-10-10
echo ${string// }
回复
相关推荐
发帖
Linux/Unix社区
创建于2007-08-27

2.0w+

社区成员

Linux/Unix社区 应用程序开发区
申请成为版主
帖子事件
创建了帖子
2010-10-10 11:12
社区公告
暂无公告