这样做的:
print -l ./somedir/**/*.{png,jpg}
提供了png
和jpg
文件的预期列表,并且它们都有两种类型,但是
print -l ./somedir/**/*.{png,jpg}(Lk+50)
未列出超过50k的jpg
个文件,说no matches found ./somedir/**/*.png(Lk+50)
。
为什么它会在此png
停止,而不是在jpg
上展开?
答案 0 :(得分:0)
根据文件说:
请注意,大括号扩展不是文件名生成的一部分(globbing);在生成文件名之前,诸如* / {foo,bar}之类的表达式被分成两个单独的单词* / foo和* / bar。特别要注意的是,如果两个表达式中的任何一个不匹配,则可能会产生“不匹配”错误;这与* /(foo | bar)形成对比,后者被视为单一模式,但具有相似的效果。
我得出的结论是,我必须写:
// Open as text file
FILE *f = fopen(name, "w");
if (f == NULL)
{
printf("Error opening file!\n");
exit(1);
}
// write some text
const char *text = "Write this to the file";
fprintf(f, "Some text: %s\n", text);
fclose(f);
,以获得所需的结果。