如何在Linux中创建aa、ab、ac……zz序列命名的文件
生成aa到zz序列文件的正确方法
你之前尝试的两条命令都存在语法或逻辑问题:
- 第一条命令
touch {\[a-z\]..\[a-z\]}[[text]:错误转义了括号,还包含多余的无效语法,bash大括号扩展不需要对[]转义,且末尾的[[text]完全不符合命令格式。 - 第二条命令
touch [aa-zz].txt:这里的[]是正则字符组匹配,仅能匹配单个字符的范围,无法生成双字符的序列组合,因此达不到预期效果。
下面是两种可行的正确实现方式:
方式一:利用bash大括号扩展(最简洁)
bash原生支持嵌套的大括号扩展,直接通过以下命令就能一次性生成所有aa到zz的文件:
touch {a-z}{a-z}
如果需要给文件加上.txt后缀,只需修改为:
touch {a-z}{a-z}.txt
方式二:使用嵌套for循环(更直观)
如果想理解具体的生成逻辑,用嵌套循环逐个创建文件:
for first_char in {a..z}; do for second_char in {a..z}; do touch "${first_char}${second_char}" done done
同样,要加后缀的话,把touch后的内容改成"${first_char}${second_char}.txt"即可。
内容的提问来源于stack exchange,提问作者Zherdiev Danylo
相关产品推荐
相关产品推荐

