代码之家  ›  专栏  ›  技术社区  ›  flazzarini

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

  •  74
  • flazzarini  · 技术社区  · 16 年前

    最近,我不得不编写一个在XenServer中解析虚拟机的小脚本,因为在Windows XP或Windows Server 2008中,虚拟机的名称大多带有空格,所以我不得不修剪这些空格,并用下划线替换它们。我用sed找到了一个简单的解决方案,它是处理字符串的好工具。

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

    返回

    This_is_just_a_test
    

    有没有其他方法可以做到这一点?

    2 回复  |  直到 5 年前
        1
  •  183
  •   Chad S.    10 年前

    您只需使用shell即可完成,无需 tr sed

    $ str="This is just a test"
    $ echo ${str// /_}
    This_is_just_a_test
    
        2
  •  19
  •   unwind    16 年前

    这是一种边缘编程,但请注意使用 tr :

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

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

    推荐文章