簡體   English   中英

在 bash 中使用正則表達式列出文件 | 忽略具有某些字符的文件

[英]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 個命令。

  1. /^d/d刪除任何以d開頭的行(排除目錄)
  2. / test[0-9]*\\.csv.*/!d刪除與您要過濾的正則表達式不匹配的任何行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM