如何在Linux上查找名称短于n个字符的文件?

xkrw2x1b  于 5个月前  发布在  Linux
关注(0)|答案(3)|浏览(79)

如何在Linux上找到文件名短于n个字符的文件?
例如,要使用某些东西,我正在递归地查找/home/myuser中长度小于5个字符的所有文件名(因此,应该找到名称为foo的文件,但名称为barbaz并不是因为它的名称长于4个字符)-我该怎么做?

im9ewurl

im9ewurl1#

find-name选项对没有路径的文件名进行操作。你不能在模式中说“短于”,但你可以说“长于”并否定:

find . -not -name '?????*'

字符串

2eafrhcq

2eafrhcq2#

请试试这个

find . -type f -exec basename {} \; | awk '{ if(length($0) < n) print $0 }'

字符串
其中“n”是字符数

olqngx59

olqngx593#

这也可以通过使用带有-E开关的扩展正则表达式将find命令的输出管道传输到grep中来实现,即:
find -type f -exec basename {} \; | grep -E '^.{,4}$ '
在grep部分,^表示第一个字符位置,.表示任何字符,{,4}表示前面的字符的4个或更少(现在表示任何字符的4个或更少),$表示最后一个字符位置。
带有-E开关的命令grep取代了我们以前所知道的egrep,它现在已经停止使用了。

相关问题