最近我不得不编写一个在XenServer中解析虚拟机的小脚本,因为虚拟机的名称主要是在Windows XP或Windows Server 2008中使用空格,我不得不修剪这些空格并用下划线替换它们_.我找到了一个简单的解决方案,使用sed这是一个很好的工具,当涉及到字符串操作.
echo "This is just a test" | sed -e 's/ /_/g'
Run Code Online (Sandbox Code Playgroud)
回报
This_is_just_a_test
Run Code Online (Sandbox Code Playgroud)
gho*_*g74 164
你可以只使用shell,不需要tr或sed
$ str="This is just a test"
$ echo ${str// /_}
This_is_just_a_test
Run Code Online (Sandbox Code Playgroud)
unw*_*ind 15
这是边界编程,但请看使用tr:
$ echo "this is just a test" | tr -s ' ' | tr ' ' '_'
Run Code Online (Sandbox Code Playgroud)
应该这样做.第一次调用会压缩空格,第二次调用会替换为下划线.您可能需要添加TAB和其他空白字符,这仅适用于空格.