Reputation: 587
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
Reputation: 81
You can use awk:
variable=`sestatus | awk '/Current mode:/ {print $3}'`
Upvotes: 8
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
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