[英]List files using regex in bash | ignore file having certain characters
我是正則表達式的新手,我想列出與給定正則表達式匹配的文件。 我有一些示例文件,如下圖所示
我想要正則表達式,它應該返回下面提到的文件:
test1.csv test2.csv test3.csv test9.csv.tt
我想為此使用 find 命令,我也嘗試使用下面提到的 find 命令,但無法達到我的預期結果
find . -maxdepth 1 -type f -name "**test[0-9]*[^-a-zA-Z_]***.csv*" -exec ls -l {} +
我想使用相同的 commnad 來實現我的預期輸出,只是我想要正確的正則表達式。
任何人有任何想法請幫忙!
使用find
,您可以嘗試:
find . -type f -regex ./test[0-9]\\*.csv.\\* -exec ls -l {} +
或者,使用sed
,您可以嘗試
$ ls -l | sed '/^d/d;/ test[0-9]*\\.csv.*/!d'
(不確定數字是否是強制性的——如果是,則將*
替換為+
)
此sed
有 2 個命令。
/^d/d
刪除任何以d
開頭的行(排除目錄)/ test[0-9]*\\.csv.*/!d
刪除與您要過濾的正則表達式不匹配的任何行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.