最近,我不得不编写一个在XenServer中解析虚拟机的小脚本,因为在Windows XP或Windows Server 2008中,虚拟机的名称大多带有空格,所以我不得不修剪这些空格,并用下划线替换它们。我用sed找到了一个简单的解决方案,它是处理字符串的好工具。
echo "This is just a test" | sed -e 's/ /_/g'
返回
This_is_just_a_test
有没有其他方法可以做到这一点?
您只需使用shell即可完成,无需 tr sed
tr
sed
$ str="This is just a test" $ echo ${str// /_} This_is_just_a_test
这是一种边缘编程,但请注意使用 tr :
$ echo "this is just a test" | tr -s ' ' | tr ' ' '_'
我应该这样做。第一个调用向下压缩空格,第二个调用替换为下划线。您可能需要添加制表符和其他空白字符,这仅适用于空格。