[英]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.