Bash 在unix中从命令输出中grep行和列的值

Bash 在unix中从命令输出中grep行和列的值,bash,awk,grep,solaris,Bash,Awk,Grep,Solaris,我需要从Solaris中“lustatus”命令的输出中获取“Boot Environment Name”、“Active Now”、“Active On Reboot”的值,以确定启动环境中是否有任何开关 我将把Active boot environment的值存储在一个文件中,并检查在升级过程中启动环境是否有任何变化,以执行一些操作 lustatus命令的输出如下: bash-3.2# /usr/sbin/lustatus Boot Environment Is

我需要从Solaris中“lustatus”命令的输出中获取“Boot Environment Name”、“Active Now”、“Active On Reboot”的值,以确定启动环境中是否有任何开关

我将把Active boot environment的值存储在一个文件中,并检查在升级过程中启动环境是否有任何变化,以执行一些操作

lustatus命令的输出如下:

bash-3.2# /usr/sbin/lustatus
Boot Environment           Is       Active Active    Can    Copy
Name                       Complete Now    On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
d10                        yes      yes    yes       no     -
d70                        yes      no     no        yes    -

我相信这个
awk
示例会有所帮助

/usr/sbin/lustatus | tail -n 2 | awk '{print $1 " " $3 " " $4}'

d10 yes yes
d70 no no
使用awk

/usr/sbin/lustatus  | awk 'NR>3&&$3=="yes"{print $1}'
如何将“当前活动”值的条件检查设置为 “是”,然后在awk命令中只打印“引导环境名称”

这条线可以:

yourCmd|awk '$3=="yes"&&$0=$1'

您可以在
awk
中使用NR>3消除
tail
,谢谢您的回复。但是我如何才能将“activenow”值的条件检查设置为“yes”,然后在awk命令中只打印“Boot Environment Name”?+1但我建议为更可读的样式大量使用空格,例如:
'NR>3&&$3==“yes”{print$1}