Bash 在unix中从命令输出中grep行和列的值
我需要从Solaris中“lustatus”命令的输出中获取“Boot Environment Name”、“Active Now”、“Active On Reboot”的值,以确定启动环境中是否有任何开关 我将把Active boot environment的值存储在一个文件中,并检查在升级过程中启动环境是否有任何变化,以执行一些操作 lustatus命令的输出如下: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
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}