0

我有一些输出

ps -ef | grep apache

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

4

5 回答 5

4

使用tr

ps -ef | grep apache | tr ' ' @
于 2013-09-11T14:23:12.293 回答
4

使用tr

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

文档

于 2013-09-11T14:23:19.880 回答
3

基本 sed 命令:

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

sed 's/text/new text/g'寻找“文本”并将其替换为“新文本”。

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

ps -ef | grep apache | sed 's/[_ ]/@/g'
于 2013-09-11T14:22:43.347 回答
1

如果你想用一个@符号替换多个空格字符,你可以使用-sflag with tr

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

或这个sed解决方案:

ps -ef | grep apache | sed -r 's/ +/@/g'
于 2013-09-11T14:32:50.867 回答
1

grep如果你使用,你可以跳过额外的awk

ps -ef | awk '/apache/{gsub(/ /,"@");print}'
于 2013-09-11T14:29:11.463 回答