如何解析shell脚本中的命令输出

时间:2014-07-04 10:57:03

标签: linux shell parsing

有人可以建议我如何解析下面的命令输出并将特定值存储在变量中。

sestatus

这是该命令的输出

SELinux status:                 enabled  
SELinuxfs mount:                /selinux  
Current mode:                   enforcing  
Mode from config file:          enforcing  
Policy version:                 24  
Policy from config file:        targeted

在这里,我想存储当前模式的"强制执行" :在变量中。

任何人都可以建议我。

提前致谢。

3 个答案:

答案 0 :(得分:3)

你可以使用cut或sed,任何实现都可以使用,

[root@giam20 ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted
[root@giam20 ~]# variable=`sestatus | grep 'Current mode'|cut -f2 -d ":"`
[root@giam20 ~]# echo $variable
enforcing
[root@giam20 ~]#

这比上面写的简单。

答案 1 :(得分:2)

您可以使用sed

variable=$(the_command | sed -n 's/Current mode: \(.*\)/\1/p')

$(cmd)语法称为command substituion,语句将通过cmd的输出进行扩展。

答案 2 :(得分:2)

您可以使用awk:

variable=`sestatus | awk '/Current mode:/ {print $3}'