【问题标题】:How does this sed command works?这个 sed 命令是如何工作的?
【发布时间】:2017-06-12 07:52:34
【问题描述】:

我在这里找到了以下 sed 命令https://github.com/shama/grunt-hub

ps -ef | sed -n '/grunt/{/grep/!p;}'

有人能解释一下sed 部分是如何工作的吗? {/grep/!p;}的目的是什么?

感谢关注!

【问题讨论】:

  • 比较这两个命令的输出ps -ef | sed -n '/grunt/p' 和.ps -ef | sed -n '/grunt/{/grep/!p;}' 你稍后会注意到没有打印一个包含你点击的 grep 命令的进程 ID 的附加命令。这相当于ps -ef |grep grunt |grep -v grep。就像打印所有包含grunt 的行,但不打印其中还包含grep 的行。
  • 谢谢,请写一个答案,以便我接受:)

标签: shell sed command-line-interface


【解决方案1】:

比较以下两个命令的输出:

ps -ef | sed -n '/grunt/p'ps -ef | sed -n '/grunt/{/grep/!p;}'

稍后您会注意到没有打印一个包含您点击的 grep 命令的进程 ID 的附加内容。这相当于:

ps -ef |grep grunt |grep -v grep

就像打印所有包含 grunt 的行,但不打印其中还包含 grep 的行

【讨论】:

  • ....当然,当面临使用管道链greps 或s/old/new/ 以外的sed 命令时,您应该只使用一个awk 命令。在这种情况下,它会是ps -ef | awk '/grunt/ && !/awk/',甚至更好地使用pgrep
猜你喜欢
  • 1970-01-01
  • 2019-09-03
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多