正则表达式egrep发现.gz但不是.tar.gz

Com*_*low 3 regex linux bash grep find

我需要找到目录中的所有.gz文件而不是 .tar.gz文件,然后发送所有.gz文件some_other_command进行处理.

我到目前为止:

find . -regextype egrep -regex '.*/*\.gz$|[NOT .tar.gz]' -exec some_other_command -- '{}' '+'

some_other_command只需要.gz文件而不 需要.tar.gz.我[NOT .tar.gz]的正则表达式应该是什么?

fed*_*qui 9

你可以用这个:

find . -name "*.gz" ! -name "*.tar.gz" -exec some_other_command -- '{}' '+'
       ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
       I want        I do not want
Run Code Online (Sandbox Code Playgroud)