代码之家  ›  专栏  ›  技术社区  ›  kvway

最后在awk中运行[Solaris]

  •  1
  • kvway  · 技术社区  · 8 年前

    我怎么跑 last awk中每个匹配行的命令?

    ypcat passwd | awk -F":" '/:John / { system("last" $1)  }'
    

    我正在尝试执行 最后的 命令,但它不打印任何内容。

    2 回复  |  直到 8 年前
        1
  •  4
  •   Cyrus    8 年前

    在后面插入空白 last :

    ypcat passwd | awk -F":" '/:John / {system("last " $1)}'
    
        2
  •  3
  •   Ed Morton    8 年前

    你的方法是错误的,awk不是shell。awk被设计用于操作文本,而不是从中调用其他工具,这就是shell的用途。这可能是您想要的,取决于 last 是/否:

    ypcat passwd | awk -F":" '/:John /{print $1}' | xargs last
    

    或:

    ypcat passwd | awk -F":" '/:John /{print $1}' | xargs -n 1 last