![](/img/trans.png)
[英]How can I use search replace in visual studio with regular expression?
[英]How can I use regular expression to search files in Unix?
我有來自 2 個不同類別的以下文件: 類別 1:MAA MAB MAC MAD MAE MAF MAG MAH MAJ MBA MBB MBC MBD MBE MDA MDD
和類別 2 : MCA MCB MCC MCD MCE MCF MCG MDB
所以我的問題是:如何編寫正則表達式,以便只能從類別 1 中找到文件?
我不想做硬編碼腳本,期待聰明人的一些邏輯。
我正在嘗試這個:找到。 -regex "*[M][A,B,D][A,B,C,D,E,F,J].txt"
這很簡單:
ls -l | grep "MAA\|MAB\|MAC\|MAD\|MAE\|MAF\|MAG\|MAH\|MAJ\|MBA\|MBB\|MBC\|MBD MBE\|MDA\|MDD"
好的,所以你不想要硬編碼。 那么是的,您應該說明不匹配-v
的模式
ls -l | grep -v "MC." | grep -v "pattern2" | ....
您的問題不是很精確,但是從您的嘗試中,我得出結論,您正在尋找名稱以 ....MAA.txt、...MAB.txt 等結尾的文件,並且位於您的工作目錄中目錄或下面的某個地方。
您也沒有提到您使用的是哪種外殼。 這是一個使用 zsh 的示例 - 無需在此處編寫正則表達式:
ls ./**/*M{AA,AB,AC,AD,AE,AF,AG,AH,AJ,BA,BB,BC,BD,BE,DA,DD}.txt
我正在嘗試這個:找到。 -regex "*[M][A,B,D][A,B,C,D,E,F,J].txt"
這其中的錯誤是:
.*
,不像剛*
在一個正常的文件名模式。G
和H
MDB
。除了:
,
分隔。[M]
) 的括號表達式可以僅替換為項目 ( M
)。這將導致:
find . -regex ".*M[ABD].*" -not -name "MDB*"
或者,沒有正則表達式:
find . -name "M[ABD]*" -not -name "MDB*"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.