linux find 查找不以xxx结尾的文件
查找不以xxx结尾的文件,根据正则和find的语法,我自己觉得应该如下实现,但是,这样写后,在shell下执行,会提示错误:-bash:!\.py:eventno...
查找不以xxx结尾的文件,根据正则和find的语法,我自己觉得应该如下实现, 但是,这样写后,在shell下执行,会提示错误:-bash: !\.py: event not found find -regextype "posix-extended" -regex ".*(?<!xxx)$" 麻烦帮指点下,如何找不以XXX文件,另外,我上面的写法,有什么问题?是shell的正则语法和其他语言的不同吗?谢谢。
展开
1个回答
展开全部
Linux下先用find命令查找,然后用grep命令来匹配不以xxx结尾的文件,案例如下:
查找/etc/zhidao
目录下不以baidu结尾的文件
find /etc/zhidao -type f |grep -v 'baidu$' /etc/group
#用find命令查找/etc/zhidao下所有普通文件,然后管道符传递给grep执行,匹配正则表达式以baidu结束行,加上-v参数即为查找不包含匹配项的行。
grep命令常用参数和正则表达式:
-I
:忽略大小写
-c
:打印匹配的行数
-l
:从多个文件中查找包含匹配项
-v
:查找不包含匹配项的行
-n:打印包含匹配项的行和行标
RE(正则表达式)
\
忽略正则表达式中特殊字符的原有含义
^
匹配正则表达式的开始行
$
匹配正则表达式的结束行
\<
从匹配正则表达式的行开始
\>
到匹配正则表达式的行结束
[
]
单个字符;如[A]
即A符合要求
[
-
]
范围
;如[A-Z]即A,B,C一直到Z都符合要求
.
所有的单个字符
*
所有字符,长度可以为0
查找/etc/zhidao
目录下不以baidu结尾的文件
find /etc/zhidao -type f |grep -v 'baidu$' /etc/group
#用find命令查找/etc/zhidao下所有普通文件,然后管道符传递给grep执行,匹配正则表达式以baidu结束行,加上-v参数即为查找不包含匹配项的行。
grep命令常用参数和正则表达式:
-I
:忽略大小写
-c
:打印匹配的行数
-l
:从多个文件中查找包含匹配项
-v
:查找不包含匹配项的行
-n:打印包含匹配项的行和行标
RE(正则表达式)
\
忽略正则表达式中特殊字符的原有含义
^
匹配正则表达式的开始行
$
匹配正则表达式的结束行
\<
从匹配正则表达式的行开始
\>
到匹配正则表达式的行结束
[
]
单个字符;如[A]
即A符合要求
[
-
]
范围
;如[A-Z]即A,B,C一直到Z都符合要求
.
所有的单个字符
*
所有字符,长度可以为0
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询