我不是贝壳专家,但我需要一个我和我的好朋友谷歌找不到的命令。
我正在搜索一个命令,它将输出文件名中包含空格或变音符号的所有文件,这些文件来自特定类型,例如.pdf - 它也应在所有子目录中搜索。
感谢您的帮助!
答案 0 :(得分: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