listfile exe 用正規表示式來找檔案

2021-05-23 11:08:52 字數 1624 閱讀 1387

最近的工作裡,涉及到不少目錄之間的批量操作(產品的部署、資料夾之間的同步等等)。工作的環境是 win xp,沒有自帶諸如 linux 下 find 這樣方便的工具。當然,我在我自己的環境裡安裝了 cygwin,但我不能要求其他同事僅僅為了使用這個命令而也裝乙個 cygwin。而且,find 是用萬用字元去匹配檔名,我一直幻想著用正規表示式來匹配檔名/目錄,所以我趁週末開發這個小工具。程式已經寫好了,並發布到了 google code 上,主頁是 http://code.google.com/p/listfile/ 。如下圖:

lf [options] pattern...

lf 通過給定的模式來列出檔案(或目錄),類似 unix 系統下的 find (1) 命令,不過 find (1) 是用統配符來匹配檔名。比如:星號(*)代表零到多個字元;問號(?)代表單個任意字元。不過,用於匹配路徑的話,正規表示式的功能更強大也更靈活。另乙個好玩的特性是 lf 可以輸出彩色資訊,就像 unix 裡 ls --color=auto 一樣。

-a, --all

顯示所有檔案(包括隱藏檔案)。

-a, --absolute-path

輸出的檔案路徑顯示為絕對路徑。

-e, --exec command

執行命令。可以通過<1> .. 來引用前面匹配的路徑的每一項,而<0>則匹配完整路徑。

此外,可以通過用逗號分隔範圍中的第乙個和最後乙個數字指定一系列連續的檔名。因此<0>和<1,n>是等價的。

-h, --help

顯示這個幫助文件,並退出。

-i, --ignore-case

匹配時忽略大小寫。

-r, --relative-path

輸出的檔案路徑顯示為相對路徑(相對於當前路徑)。

模式表示式同時支援萬用字元和正規表示式,其中正規表示式要放在尖括號裡(「」)。

userprofile

變數%userprofile%是 ms windows nt系統中乙個特殊環境變數,它的值是當前使用者配置檔案所在的目錄(類似unix下的home目錄)。
正常情況下為零,否則為非零。

1. lf "workspaces/project/src/*.cpp" -e "copy <0> backup/<2,4>"

依次把 project1 到 project9 下的 src 資料夾裡的 c++ 原始檔備份到 backup 目錄下相應的 project*/src 目錄下,並且檔名保持一致。
這個程式引用了微軟的正規表示式庫 greta 2.6.4 ,和它相關的東西你要遵循 greta 自己的協議。不過,由我寫的那部分**你可以隨意使用,你甚至可以告訴你的(這也是個正規表示式,哈哈)這個程式是你寫的!我只希望這個小玩意兒能幫你節省點時間。

我的郵箱,歡迎來信([email protected]

我的blogger(子清行 ):http://redraiment.blogspot.com/

我的google sites(子清行 ):https://sites.google.com/site/redraiment

我的csdn部落格(夢婷軒 ):http://blog.csdn.net/redraiment

在Delphi用vbscript的正規表示式

一.由於delphi本身沒有正規表示式單元,可以引用vbscript來使用正規表示式,步驟為 1.在project中單擊import type library,選中microsoft vbscript regular expression 5.5 version 5.5 2.單擊 create un...

js正則exec,match,search用法練習

html htmllang en head metacharset utf 8 title title title head body body script varstr you are a boy varreg newregexp o g 匹配正則返回乙個陣列 搜尋的字元的下標起始位置 reg....

正則匹配表

字元描述 轉義字元,在之前,我們在字串也用過這字元,即一些字元具有特殊含義,對其進行轉義使它成為普通字元,而用在普通字元上又表示其有特殊含義 匹配輸入字串的開始位置,如果設定了匹配多行 m 那麼也匹配行的開頭 匹配輸入字串的結束位置。如果設定了匹配多行 m 那麼也匹配行的結束 匹配前面的子表示式零次...