单个命令中的多个awk打印

时间:2017-11-09 09:25:40

标签: awk

以下是我们需要执行的2命令,有两种方法可以通过;|在一行中执行此操作。有没有其他方法可以通过awk命令执行它。

这些是下面执行两次的命令,是否可以使用多个awk print的一个命令,如示例命令所示。

isi_classic snapshot usage | tail -n 1 | awk '{printf "\t\t\tSnapshot USED %=%.1f%%\n", $4}'
     Snapshot USED =0.6%
isi_classic snapshot usage | tail -n -1 | awk '{ print "\t\t\tSnapshot USED:" $1}'
     Snapshot USED=3.2T

尝试了示例命令:

isi_classic snapshot usage | tail -n 1 | awk '{printf "\t\t\tSnapshot USED %:%.1f%%\n", $4}'; awk '{ print "\t\t\tSnapshot USED:" $1}'

Snapshot USED =0.6%
Snapshot USED=3.2T

1 个答案:

答案 0 :(得分:1)

你绝对可以使用单行命令来完成它,

isi_classic snapshot usage | awk -v OFS='\t\t\t' 'END{printf "%sSnapshot USED %=%.1f%%\n%sSnapshot USED:%s\n",OFS,$4,OFS,$1}'

简要说明,

  • 无需使用tailawk 'END{}'可以做同样的事情
  • 您可以将printfprint命令合并到一个
  • 最好将'\t\t\t'替换为OFS以使命令更具可读性