1

我不是外壳专家,但我需要一个我的好朋友谷歌找不到的命令。

我正在搜索一个命令,它将输出文件名中带有空格或变音符号并且来自特定类型的所有文件,例如 .pdf - 它也应该在所有子目录中搜索。

谢谢您的帮助!

4

1 回答 1

1
shopt -s globstar nullglob
printf "%s\n" **/!(+([a-zA-Z0-9_.-])).pdf

该模式指定(英语)大写或小写字母、数字和一些标点符号是“有效”字符。调整以适合您的文件。任何不是以这些字符专门命名的文件都会被匹配。

请注意,连字符是括号表达式(范围运算符)中的特殊字符。要匹配文字连字符,它必须是括号中的第一个或最后一个字符。

如果你想对这些文件做点什么,请使用 for 循环:

for file in **/!(+([a-zA-Z0-9_.-])).pdf; do
    : do stuff with "$file" -- quotes are important
done
于 2013-06-19T09:46:04.890 回答