awk + ​​在一行中打印 awk 输出

6 ksh awk

当我使用awk运行以下hasys命令时,我得到的机器名称输出如下:

hasys -display|grep Shutdown | awk '{print $1}'
  machine1a
  machine1b
Run Code Online (Sandbox Code Playgroud)

请建议如何在一行中打印机器名称,如下所示:示例

hasys -display|grep Shutdown | awk '{print $1}'

    machine1a machine1b
Run Code Online (Sandbox Code Playgroud)

我需要在我的 awk 语法中添加什么,以便我能够在一行中打印名称?

dev*_*ull 10

你可以说:

hasys -display | grep Shutdown | awk '{print $1}' ORS=' '
Run Code Online (Sandbox Code Playgroud)


jas*_*yan 9

grepawk是多余的:

 hasys -display | awk '/Shutdown/ { printf "%s ", $1 }'
Run Code Online (Sandbox Code Playgroud)

  • 如果他想在最后一条记录后换行,他可以这样做:`awk '/Shutdown/ {printf "%s ", $1} END {print ""}' ` (2认同)

Sté*_*las 5

hasys -display | awk '/Shutdown/ {print $1}' | paste -sd ' ' -
Run Code Online (Sandbox Code Playgroud)

@devnull's@jasonwryan's相反,这个不添加尾随空格并终止该行。是将行连接到分隔列表的通用习惯用法。paste -sd<sep> -<sep>