最近,我不得不编写一个小脚本来解析XenServer中的VM,并且由于VM的名称通常在Windows XP或Windows Server 2008中带有空格,因此我必须修剪这些空格并用下划线_代替。我找到了使用sed进行此操作的简单解决方案,它是处理字符串操作时的绝佳工具。
echo "This is just a test" | sed -e 's/ /_/g'
退货
This_is_just_a_test
还有其他方法可以做到这一点吗?
最近,我不得不编写一个小脚本来解析XenServer中的VM,并且由于VM的名称通常在Windows XP或Windows Server 2008中带有空格,因此我必须修剪这些空格并用下划线_代替。我找到了使用sed进行此操作的简单解决方案,它是处理字符串操作时的绝佳工具。
echo "This is just a test" | sed -e 's/ /_/g'
退货
This_is_just_a_test
还有其他方法可以做到这一点吗?
Answers:
您可以仅使用外壳,而无需tr
或sed
$ str="This is just a test"
$ echo ${str// /_}
This_is_just_a_test
${str//[^a-zA-Z0-9]/_}
; 无论哪种方式,如果您不坚持使用纯粹的POSIX shell,请使用可用的功能。