如何在一行中字符串替换命令的结果?

How can I string replace results of a command in one line?

例如,假设我想在 ps aux | grep python.

的输出中将子字符串 python 替换为 php

如何在一行中完成此操作?

ps aux | grep python | /python/php/
                              ^--- totally made up

期望的输出是看到如下所示的字符串:script.pythonscript.php。这与实际文件无关。这只是关于输出。我可以很容易地说用 f.

替换所有 ph

你甚至不需要 grep。您可以只使用 sed:

ps aux | sed -n '/python/s/python/php/pg'
  • -n会抑制正常输出
  • /python/ 将搜索带有 python
  • 的行
  • s/python/php/pg 将用 php 替换所有出现的 python 并打印替换的行