【问题标题】:remove control characters from string using TR使用 TR 从字符串中删除控制字符
【发布时间】:2020-08-11 06:28:55
【问题描述】:

请尝试以下命令:

echo "(After Sweet Memories) Play Born To Lose Again" | tr '(' '-' | tr ')' '-' | tr ' ' '-'

-After-Sweet-Memories--Play-Born-To-Lose-Again (注意双重--

我无法修改命令并传递 (null) 值,我必须传递另一个 -

查看这个例子和这个错误:

echo "(After Sweet Memories) Play Born To Lose Again" | tr '(' '' | tr ')' '' | tr ' ' '-'

tr: tr: when not truncating set1, string2 must be non-emptywhen not truncating set1, string2 must be non-empty

【问题讨论】:

    标签: linux wordpress bash ubuntu tr


    【解决方案1】:

    您可以使用“tr -d”来删除字符。这是您正在寻找的解决方案吗?

    echo "(After Sweet Memories) Play Born To Lose Again" | tr -d '(' |  tr -d ')' |  tr ' ' '-'
    

    在甜蜜的回忆之后 - 再次玩耍 - 出生 - 再次失败

    【讨论】:

    • 你也可以用tr -d '()'一次运行删除两个括号字符
    【解决方案2】:

    已提供tr 解决方案,但tr 要求您在管道中运行多个实例。您可以使用sed 在一个过程中完成所有操作。

    echo "(After Sweet Memories) Play Born To Lose Again" | sed 's/ /-/g; s/[()]//g;'
    After-Sweet-Memories-Play-Born-To-Lose-Again
    

    您甚至可以丢失echo(尽管这几乎不是问题...)

    sed 's/ /-/g; s/[()]//g;' <<< "(After Sweet Memories) Play Born To Lose Again"
    After-Sweet-Memories-Play-Born-To-Lose-Again
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 2010-12-02
      • 2018-09-08
      • 1970-01-01
      • 2012-05-04
      • 2011-05-28
      • 1970-01-01
      相关资源
      最近更新 更多