如何将一些符号(例如“空格”)更改为Bash / shell中的其他符号

时间:2013-09-11 14:21:25

标签: linux bash shell text

我有一些来自

的输出
ps -ef | grep apache

我需要将该输出中的所有空格更改为“@”符号 是否可以使用一些bash脚本? 感谢

5 个答案:

答案 0 :(得分:4)

使用tr

ps -ef | grep apache | tr ' ' @

答案 1 :(得分:4)

使用tr

$ echo 'foo bar baz' | tr ' ' '@'
foo@bar@baz

documentation

答案 2 :(得分:3)

基本sed命令:

ps -ef | grep apache | sed 's/ /@/g'

sed 's/text/new text/g'查找“text”并将其替换为“new text”。

如果您想要替换更多字符,例如将所有空格和_替换为@ :(感谢Adrian Frühwirth):

ps -ef | grep apache | sed 's/[_ ]/@/g'

答案 3 :(得分:1)

如果您使用grep

,则可以跳过额外的awk
ps -ef | awk '/apache/{gsub(/ /,"@");print}'

答案 4 :(得分:1)

如果您希望仅使用一个@符号替换多个空格字符,则可以将-s标记与tr一起使用:

ps -ef | grep apache | tr -s ' ' '@'

或此sed解决方案:

ps -ef | grep apache | sed -r 's/ +/@/g'