看看那些正则表达式
find /tmp/MG/virt-manager-5.0.0/ -maxdepth 1 -type f |grep -v [^a-z]+\.[^a-z]+
/tmp/MG/virt-manager-5.0.0/.mailmap
/tmp/MG/virt-manager-5.0.0/virt-manager
/tmp/MG/virt-manager-5.0.0/DESIGN.md
/tmp/MG/virt-manager-5.0.0/meson.build
/tmp/MG/virt-manager-5.0.0/NEWS.md
/tmp/MG/virt-manager-5.0.0/.gitignore
/tmp/MG/virt-manager-5.0.0/README.md
/tmp/MG/virt-manager-5.0.0/.pylintrc
/tmp/MG/virt-manager-5.0.0/.coveragerc
/tmp/MG/virt-manager-5.0.0/virt-install
/tmp/MG/virt-manager-5.0.0/.packit.yaml
/tmp/MG/virt-manager-5.0.0/COPYING
/tmp/MG/virt-manager-5.0.0/virt-xml
/tmp/MG/virt-manager-5.0.0/virt-manager.spec.in
/tmp/MG/virt-manager-5.0.0/INSTALL.md
/tmp/MG/virt-manager-5.0.0/meson_options.txt
/tmp/MG/virt-manager-5.0.0/virt-manager.spec
/tmp/MG/virt-manager-5.0.0/virt-clone
/tmp/MG/virt-manager-5.0.0/CONTRIBUTING.md
/tmp/MG/virt-manager-5.0.0/setup.cfg
我想获取包含大写字母的字符串,包括 .md .txt 但只有单词至少包含一个大写字母才能更好地解释
CONTRIBUTING.MD OK
CONTRIBUTING.txt OK
CONTRIBUTING.TXT OK
Contributing.txt OK (has one capital letter)
hello.TXT OK (contain some capital letters)
contributing.txt NO (only lowercase)
我想获得这个
find /tmp/MG/virt-manager-5.0.0/ -maxdepth 1 -type f |grep -v REGEXWORKS
/tmp/MG/virt-manager-5.0.0/DESIGN.md
/tmp/MG/virt-manager-5.0.0/NEWS.md
/tmp/MG/virt-manager-5.0.0/README.md
/tmp/MG/virt-manager-5.0.0/COPYING
/tmp/MG/virt-manager-5.0.0/INSTALL.md
/tmp/MG/virt-manager-5.0.0/CONTRIBUTING.md
怎么办?谢谢
就像这样,使用
glob
:是
-type f
仅匹配文件。如果您更喜欢
regex
:可以更好地写成:
注意:
-type f
不与-regex
like-name
结合仅匹配文件名。我的看法
在使用
find
命令之前,使用-maxdepth 1
!注意:shell可以自己做这个!
或者
你甚至可以直接迭代:
使用
Perl
正则表达式:使用
awk
正则表达式: