Shell 使用“查找”查找最多7个字符长的点文件
我试过这个:Shell 使用“查找”查找最多7个字符长的点文件,shell,find,Shell,Find,我试过这个: find . \( -name ".?" -o -name ".??" -o -name ".???" -o -name ".????" -o -name ".?????" -o -name ".??????" \) 但是它不起作用你可以按照自己的方式来做,明确地把所有可能的组合放在一起。但是当你有很多的时候,或者当你不得不修改它的时候,这是很麻烦的。有更简单、
find . \( -name ".?" -o -name ".??" -o -name ".???" -o -name ".????" -o -name ".?????" -o -name ".??????" \)
但是它不起作用你可以按照自己的方式来做,明确地把所有可能的组合放在一起。但是当你有很多的时候,或者当你不得不修改它的时候,这是很麻烦的。有更简单、参数化的方法可以做到这一点 一种方法是使用正则表达式:
find . -regextype posix-egrep -regex ".*/\..{1,7}"
如果您的find不支持正则表达式,另一种简单的方法是在awk的帮助下过滤find的输出:
find . -name ".*" | awk -F"/" 'length($NF)<8 {print}'
find-命名“*”| awk-F“/”length($NF)您的命令工作正常。但也有较短的替代方案。例如:
find . -name '.*' ! -name '.???????*'
请尝试删除大括号。此命令主要起作用,但此命令不显示“.”文件。