1
我試圖使用正則表達式來解析從PSFTP中的dir
命令生成的日誌文件。PSFTP如何使用RegExp從Dir命令獲取文件名
例迪爾例如1
drwxr-xr-x 1 0 0 0 Jun 21 13:13 .
drwxr-xr-x 1 0 0 0 Jun 21 13:13 ..
-rw-r--r-- 1 0 0 897 Jun 20 15:02 EQA.txt
-rw-r--r-- 1 0 0 897 Jun 20 15:06 EQA1.txt
-rw-r--r-- 1 0 0 897 Jun 16 20:41 Test.txt
-rw-r--r-- 1 0 0 897 Jun 16 21:46 Test1.txt
-rw-r--r-- 1 0 0 897 Jun 21 13:13 Test4.txt
-rw-r--r-- 1 0 0 913 May 31 18:01 test.123456789.txt
psftp> bye
例迪爾例如2
drwx------ 2 MikePC-apps users 4096 Apr 5 2016 .
drwx------ 4 MikePC-apps users 4096 Jan 20 2016 ..
-rw-r--r-- 1 MikePC-apps users 82 Apr 5 2016 test.txt.$01
-rw-r--r-- 1 MikePC-apps users 82 Aug 10 2016 test.txt.$02
-rw-r--r-- 1 MikePC-apps users 82 Aug 10 2016 test.txt.asc
-rw-r--r-- 1 MikePC-apps users 82 Aug 10 2016 test1.txt.$01
-rw-r--r-- 1 MikePC-apps users 1927 Apr 4 2016 test.zip
從我發現周圍淨,如果文件是6個月以上或在未來
所以,今年在當天顯示而不是時間。
例如1,我使用正則表達式:/d/d/s .*.*.*
後跟子字符串函數來檢索文件名。
但我不知道如何處理第二個例子。我希望也許有一個dir
命令的參數包含時間戳,所以我可以使用相同的正則表達式。或者也許有另一個正則表達式可以處理這兩個示例。
非常感謝!
感謝您的溶液, 我修改模式來'字符串模式= @「^( 'ATTRIB'[^ \ S] +?)\ S +( '鏈接'? [^ \ S] +)\ S +(? '所有者'[^ \ S] +)\ S +(? '基團'[^ \ S] +)\ S +(? '尺寸'[^ \ S] +)\ s +(?'date'。+)\ s +(?'filename'。+)$「;' 這也包含'test1.txt。$ 01'作爲文件名。 +1(抱歉無法投票) 謝謝 – Bonobo
$ 01是文件名的一部分 – jdweng
我測試了正則表達式([^ \ s] +)\ s +([^ \ s] +)\ s +([^ \ s (Regexr]上的[] +)\ s +([^ \ s] +)\ s +([^ \ s] +)\ s +(。+)\ s +([^ $] +)因爲[^]是一個否定集合,所以它停在$。 我在模式結尾刪除了$,因爲字符串已經被分割成了句子 – Bonobo