[英]How do i split output of “who -m”command in linux?
I want to split output of who command and store output in variable 我想将who命令的输出和存储输出分成变量
EX. EX。
[root@ip ~]# who -m
root_user pts/1 2015-09-16 08:32 (windows-host.net)
I want to split this output like 我想把这个输出分开
var1 = root_user
var2 = 2015-09-16
var3 = 08:32
var4 = windows-host.net (This is hostname)
Like this? 像这样?
import os
command = os.popen('who -m')
text = command.read()
text = text.strip()
list = text.split()
var1 = a[0]
var2 = a[2]
var3 = a[3]
var4 = a[4]
output: 输出:
>>> var1
'root_user'
>>> var2
'2015-09-16'
>>> var3
'08:32'
>>> var4
'(windows-host.net)'
However this is the easiest way to do that using Python. 但是,这是使用Python执行此操作的最简单方法。
And if you'd like to do that using bash script, try these commands: 如果您想使用bash脚本执行此操作,请尝试以下命令:
var1=$(who -m | cut -f 1 -d ' ')
var2=$(who -m | cut -f 13 -d ' ')
var3=$(who -m | cut -f 14 -d ' ')
var4=$(who -m | cut -f 15 -d ' ')
In a BASH you can do this using built-in read
and process substitution
: 在BASH中,您可以使用内置的
read
和process substitution
来执行此操作:
IFS='( )' read var1 _ var2 var3 var4 _ < <(who -m)
IFS='( )'
will set input field separators as one of the (
or space or )
. IFS='( )'
将输入字段分隔符设置为(
或空格或)
。
Verify variables: 验证变量:
echo "[$var1][$var2][$var3][$var4]"
[root_user][2015-09-16][08:32][windows-host.net]
The following should work: 以下应该有效:
import re
text = "root_user pts/1 2015-09-16 08:32 (windows-host.net)"
var1, var2, var3, var4 = re.search(r'(.*?)\s.*?(\d{4}\-\d{2}\-\d{2})\s(\d{2}:\d{2})\s+\((.*)\)', text).groups()
print 'var1 =', var1
print 'var2 =', var2
print 'var3 =', var3
print 'var4 =', var4
Giving: 赠送:
var1 = root_user
var2 = 2015-09-16
var3 = 08:32
var4 = windows-host.net
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.