我想生成一系列文件,其中每个文件的文件名都要增加1(File1.txt
, File2.txt
, File3.txt
, ... FileN.txt
) 其中 N = 250
每个文件有两行。
AAAXXX
(其中XXX = 001
到250
- 每个文件自动增加)BBBYYY
(其中YYY = 3
数字随机数)
示例:
文件 1.txt:
AAA001 BBB175
File5.txt:
AAA005 BBB067
文件 102.txt:
AAA102 BBB765
我是使用 Ubuntu Linux 12.04 的新手 - 但我希望有人能提供帮助。
最佳答案
您可以按如下方式进行:
#!/bin/bash
for i in {1..250}
do
printf "AAA%03d\nBBB%03d" ${i} $(($RANDOM % 1000)) > File${i}.txt
done
解释:
for i in {1..250}
- bash 指定迭代次数从 1 到 250 的方式,增量大小为 1。printf
- 外壳 printf命令 - 用于打印格式化字符串AAA
- 字符串字面量(意思是“完全照写”)%03d
- 格式化字符串,这会打印一个十进制数字,前面填充 3 个零。\n
- 换行符BBB
- 另一个字符串文字%03d
- 和以前一样${i}
- 这是第一个格式化字符串 (%03d
) 中使用的值$(($RANDOM % 1000))
-$RANDOM
是一个系统变量,每次访问它时都会为您提供一个随机数。% 1000
取模,以便您获得0-999
之间的范围。这用于第二个格式化字符串 (%03d
)> File${i}.txt
:输出重定向;创建并保存到文件(如果文件已存在则覆盖。
关于linux - 生成具有相同结构的多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13632604/