微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用TR从字符串中删除控制字符

如何解决使用TR从字符串中删除控制字符

请尝试以下命令:

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

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

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

请参见以下示例和此错误

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

解决方法

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

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

甜蜜回忆之后的游戏重生失败

,

已经提供了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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。