awk '{ print $2; }' 到底在做什么?

awk '{ print $2; }' 到底在做什么?

我想知道这个语句到底起什么作用,尤其是其awk部分。

ps aux | grep 'sidekiq 5' | grep -v grep | awk '{ print $2; }' | xargs kill -${2:-'TERM'}

我知道整个管道都应该终止sidekiq进程。

答案1

  • ps aux列出所有进程。
  • grep 'sidekiq 5'仅显示列表中包含字符串“sidekiq 5”的行。
  • grep -v grep删除包含字符串“grep”的行。这样做是为了grep过滤掉前一个管道阶段的进程。
  • awk '{ print $2; }'打印每行的第二个字段。此字段恰好是ps aux输出中的进程 ID。
  • xargs kill -${2:-'TERM'}从选定的 sidekiq 进程中获取进程 ID,并将它们作为参数提供给kill命令。信号为 $2,如果未定义 $2,则为 SIGTERM。

相关内容