我想分開誰命令和存儲輸出變量的輸出如何在linux中分割「who -m」命令的輸出?
EX。
[[email protected] ~]# who -m
root_user pts/1 2015-09-16 08:32 (windows-host.net)
我想拆分此輸出像
var1 = root_user
var2 = 2015-09-16
var3 = 08:32
var4 = windows-host.net (This is hostname)
我想分開誰命令和存儲輸出變量的輸出如何在linux中分割「who -m」命令的輸出?
EX。
[[email protected] ~]# who -m
root_user pts/1 2015-09-16 08:32 (windows-host.net)
我想拆分此輸出像
var1 = root_user
var2 = 2015-09-16
var3 = 08:32
var4 = windows-host.net (This is hostname)
下面應該工作:
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
,並提供:
var1 = root_user
var2 = 2015-09-16
var3 = 08:32
var4 = windows-host.net
謝謝這是很好的解決方案! –
喜歡這個?
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]
輸出:
>>> var1
'root_user'
>>> var2
'2015-09-16'
>>> var3
'08:32'
>>> var4
'(windows-host.net)'
然而,這是最容易做的方式,使用Python。
如果你想,使用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 ' ')
你也分裂'2015-09-16 08:32' – ozgur
@ozgur不,這個腳本不會這樣做。 –
我會將.strip()添加到os.popen('who -m').read()來清理'\ n'。除此之外,你的代碼是最簡單的方法。 –
在一個BASH,你可以使用內置的read
和process substitution
來做到這一點:
IFS='()' read var1 _ var2 var3 var4 _ < <(who -m)
IFS='()'
將設置輸入字段分隔符作爲(
的一個或空間或)
。
驗證變量:
echo "[$var1][$var2][$var3][$var4]"
[root_user][2015-09-16][08:32][windows-host.net]
你想用Python或使用bash腳本它分裂? –