在bash中用(下划线)_替换空格的最简单方法

时间:2009-11-10 08:41:10

标签: bash sed

最近我不得不编写一个在XenServer中解析虚拟机的小脚本,并且由于Windows XP或Windows Server 2008中虚拟机的名称主要是带有空格,我不得不修剪这些空格并用下划线替换它们_ 。我找到了一个简单的解决方案,使用sed这是一个很好的工具,当涉及字符串操作。

echo "This is just a test" | sed -e 's/ /_/g'

返回

This_is_just_a_test

2 个答案:

答案 0 :(得分:152)

您只能使用shell执行此操作,无需trsed

$ str="This is just a test"
$ echo ${str// /_}
This_is_just_a_test

答案 1 :(得分:13)

这是边缘编程,但请考虑使用tr

$ echo "this is just a test" | tr -s ' ' | tr ' ' '_'

应该这样做。第一次调用会压缩空格,第二次调用会替换为下划线。您可能需要添加TAB和其他空格字符,这仅适用于空格。