如何停止以特定数字创建文件?
我想用3个字母的名字创建900个文件。如何停止以特定数字创建文件?
示例:xyz.txt,其中x,y,和z是不同的字母从a到z。
我试图做这样的事情:
for ((i=1; i < 900; i++)) do touch {a..z}{a..z}{a..z}$i.txt
done
我希望它停止在900
但最后我创建的文件超过10K。有人可以帮我完成这个吗?
回答:
为了避免与前一段重复的字符,如在评论中提到任何人的名字,你可以这样做:
printf '%s.txt\n' {a..z}{a..z}{a..z} | grep -vE '(.).?\1.?\.' \ | head -n 900 | xargs touch
- 的
printf语句打印从aaa.txt列表,aab.txt到zzz.txt。 grep -vE '(.).?\1.?\.'筛选期间之前的三个字符不是唯一的任何名称:aaa.txt,aab.txt,aba.txt和baa.txt都被过滤。head -n 900从列表touch的几次获得的第900名xargs touch调用尽可能但将确保在命令行中从未太长。
如果你想随机的文件名(但仍坚持这些标准),则可以选择900之前洗牌他们:
printf '%s.txt\n' {a..z}{a..z}{a..z} | grep -vE '(.).?\1.?\.' \ | shuf | head -n 900 | xargs touch
回答:
你可以用2线做到这一点:
all=({a..z}{a..z}{a..z}.txt) touch "${all[@]:0:900}"
(假设你的操作系统允许与900个参数的命令行)。如果除了前900个这样的文件以外,你需要做更复杂的事情。
回答:
的文件名提醒split默认输出命名。所以你可以将一个空文件分割成900个文件。
split /dev/null -n900 -a3 --additional-suffix=".txt" "" 回答:
下产生910名,并将它们传递给touch之前丢弃过去的10。
printf '%s.txt\n' {a..m}{p..v}{0..9} | head -n 900 | xargs touch 你也许能够找到产生正是900的替代品,所以你可以只touch <pattern>和有壳扩大到所需数量的唯一名称的组合。
以上是 如何停止以特定数字创建文件? 的全部内容, 来源链接: utcz.com/qa/257759.html

