2017-08-02 56 views
-1

我運行Linux的ls -la | grep 'Jul 6'命令到grep我使用的文件名如何當有一個字符串兩場比賽

重新 [drwxr-]+[\s0-9]+(\w+)[ 0-9 \w]+[:0-9]+ (\S+)

趕上兩個值,編號和文件名,在此提取值案「mwhat」,並在第一條語句「腳本」

drwxr-xr-x 15 mwhat 24500 4096 Jul 6 21:04 scripts 
drwxr-xr-x 15 araza 24500 4096 Jul 6 21:04 IMAGEs 

然後用組要追上他們,

name = str(out.group(1)) 
file = str(out.group(2)) 

這工作正常,直到我有ls輸出中的1項。我如何處理我輸出中提到的超過1個條目?

腳本的目的是從位置按日期取文件,如果有對之日起超過1個條目它不應該失敗

回答

0

可以用findall()函數來完成

pat = re.compile(r'[drwxr-]+[\s0-9]+(\w+)[ 0-9 \w]+[:0-9]+ (\S+)') 
for (name, file) in re.findall(pat, output): 
    print(name, file)