JSP
JSP

Reputation: 587

How to parse a command output in shell script

Can anyone please suggest me that how can I parse the below command output and store particular value in a variable.

sestatus

This is the output of that command

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

Here I want to store "enforcing" of Current mode: in a variable.

Can anyone please suggest me.

Thanks In Advance.

Upvotes: 20

Views: 39854

Answers (3)

jaceved2
jaceved2

Reputation: 81

You can use awk:

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

Upvotes: 8

Nachiket Kate
Nachiket Kate

Reputation: 8571

you can use cut or sed, anyone implementation is good enough to use,

[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 ~]#

this is simple to write than above.

Upvotes: 13

hek2mgl
hek2mgl

Reputation: 158250

You can use sed:

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

The $(cmd) syntax is called command substituion, the statement will being expanded by the output of cmd.

Upvotes: 8

Related Questions