1. 程式人生 > >Linux-正則表示式-反選練習

Linux-正則表示式-反選練習

練習文字如下,儲存為test.txt

Archive:  drgeo-oneclick.zip
 Length   Method    Size  Ratio   Date   Time   CRC-32    Name
--------  ------  ------- -----   ----   ----   ------    ----
       0  Stored        0   0%  10-01-08 03:53  00000000  dg/
     255  Defl:N      180  29%  09-28-08 16:35  4a44e011  dg/drgeo.ini
     193  Defl:N      156  19%  09-28-08 16:38  d8a04bc6  dg/drgeo.sh
     432  Defl:N      276  36%  09-28-08 17:59  02381895  dg/ChangeLog
    7639  Defl:N     2621  66%  01-31-08 04:19  75312e7a  dg/LICENSE
  995840  Defl:N   379701  62%  11-10-07 16:37  bf870ea0  dg/drgeo.exe
       0  Stored        0   0%  09-28-08 18:08  00000000  dg/c/
    2336  Defl:N      679  71%  09-28-08 18:07  e3415ff4  dg/c/Info.plist
       8  Stored        8   0%  06-10-07 08:25  00fa327e  dg/c/PkgInfo
       0  Stored        0   0%  10-01-08 04:18  00000000  dg/c/res/
       0  Stored        0   0%  11-18-07 00:28  00000000  dg/c/MacOS/
       0  Stored        0   0%  09-22-08 02:55  00000000  dg/c/Linux686/
   38206  Defl:N     9537  75%  09-28-08 17:18  094d9a57  dg/c/res/drgeo.icns
 2320771  Defl:N   546350  77%  10-01-08 04:17  48525057  dg/c/res/drgeo.changes
18141632  Defl:N  8169067  55%  10-01-08 04:17  d2e65bd2  dg/c/res/drgeo.image
       0  Stored        0   0%  10-01-08 04:18  00000000  dg/c/res/My Squeak/
       0  Stored        0   0%  10-01-08 02:47  00000000  dg/c/res/secure/
       0  Stored        0   0%  10-01-08 03:53  00000000  dg/c/res/examples/
     941  Defl:N      313  67%  10-01-08 02:47  edb9783f  dg/c/res/secure/Squeak.keys
   13751  Defl:N     1494  89%  12-22-06 19:33  9d788893  dg/c/res/examples/wheel.fgeo
    4372  Defl:N      676  85%  12-22-06 19:33  b02b00db  dg/c/res/examples/varignon.fgeo
    9341  Defl:N     1120  88%  12-22-06 19:33  d854c80f  dg/c/res/examples/triangles-homothetiques.fgeo
    1803  Defl:N      365  80%  01-29-08 05:41  c0e75f9c  dg/c/res/examples/tetraedre.fgeo
    4256  Defl:N      697  84%  12-22-06 19:33  915739e6  dg/c/res/examples/refraction.fgeo
    6016  Defl:N      818  86%  01-29-08 05:41  1739701a  dg/c/res/examples/pyramide_base_rect.fgeo
    7823  Defl:N      941  88%  12-22-06 19:33  6318b04f  dg/c/res/examples/mercedes.fgeo
    7574  Defl:N     1042  86%  12-22-06 19:33  49daf029  dg/c/res/examples/lens.fgeo
   12137  Defl:N     1183  90%  01-29-08 05:34  adb74826  dg/c/res/examples/exemple_3d.fgeo
    3789  Defl:N      618  84%  12-22-06 19:33  9711fecc  dg/c/res/examples/euler-line.fgeo
    6921  Defl:N      874  87%  01-29-08 05:08  21693921  dg/c/res/examples/cube.fgeo
    2054  Defl:N      473  77%  12-22-06 19:33  5aaef865  dg/c/res/examples/angle-inscrit.fgeo
 2587868  Defl:N  1050245  59%  06-10-07 08:27  6f243f86  dg/c/MacOS/squeak
   22399  Defl:N     9495  58%  11-10-07 17:45  4632473c  dg/c/Linux686/AioPlugin
   17144  Defl:N     7963  54%  11-10-07 17:45  d83c7211  dg/c/Linux686/npsqueak.so
   29128  Defl:N    12871  56%  11-10-07 17:45  12889f3a  dg/c/Linux686/PseudoTTYPlugin
 2853195  Defl:N  1000109  65%  11-10-07 17:45  c4e06d64  dg/c/Linux686/squeak
  167923  Defl:N    74932  55%  11-10-07 17:45  dac39dcf  dg/c/Linux686/Squeak3D
   91930  Defl:N    34071  63%  11-10-07 17:45  4a43f2a5  dg/c/Linux686/UnixOSProcessPlugin
   87661  Defl:N    38083  57%  11-10-07 17:45  5b09e49b  dg/c/Linux686/vm-display-fbdev
   18363  Defl:N     7230  61%  11-10-07 17:45  69dec6cf  dg/c/Linux686/vm-display-null
  159358  Defl:N    70409  56%  11-10-07 17:45  684a8a9d  dg/c/Linux686/vm-display-X11
   36270  Defl:N    14162  61%  11-10-07 17:45  480e228e  dg/c/Linux686/vm-sound-ALSA
   12797  Defl:N     5083  60%  11-10-07 17:45  5c4a1e29  dg/c/Linux686/vm-sound-null
   54917  Defl:N    21578  61%  11-10-07 17:45  b5e6c293  dg/c/Linux686/vm-sound-OSS
   21170  Defl:N     9001  58%  11-10-07 17:45  a6511bd8  dg/c/Linux686/XDisplayControlPlugin
--------          -------  ---                            -------
27748213         11474421  59%                            45 files

一、反選第一列:

[[email protected] tmp]# less test.txt

使用less檢視test.txt後,輸入/,表示查詢字元,為了使第一列反選,使用的正則表示式為:^\s*[0-9]+,效果如下圖所示:


二、反選第二列

仔細觀察第二列的資料,主要由Defl:N或者Stored組成,因此,我們使用正則表示式為:Defl:N|Stored,效果如下:

三、由於第三列的特徵不明顯,因此第三列和第四列一起反選:

使用正則表示式為:\s*[0-9]+\s*[0-9]{2}%,反選效果如下:

四、單獨反選第四列:

使用正則表示式:[0-9]{2}%,效果如下圖所示:


五、反選第五列

使用正則表示式:([0-9]{2}-){2}[0-9]{2}\s[0-9]{2}\:[0-9]{2},效果如下圖所示:


六、反選第六列

初步觀察,可使用正則表示式[0-9a-z]{8},但選擇的資料包含了不想要得資料,如下圖所示:


如何改進?通過在上述正則表示式的前後增加空白,則改進後的正則表示式為:\s[0-9a-z]{8}\s,效果如下圖所示:


七、反選最後一列

使用正則表示式:[a-z]*\/.*$,效果如下圖所示:


八、選擇列表中,檔案的字尾

使用正則表示式:\..*$,效果如下圖所示:


九、如何列出上述列表中的所有目錄?

使用正則表示式:[a-z]+\/$,效果如下圖所示:


原文出處為:http://user.frdm.info/ckhung/b/re/hilight.php