我想生成一系列文件,其中每个文件的文件名应增加1(File1.txt
,File2.txt
,File3.txt
,... {{1} })FileN.txt
每个文件有2行。
N = 250
(其中AAAXXX
至XXX = 001
- 每个文件自动增加)250
(其中BBBYYY
数字随机数)示例:
FILE1.TXT:
YYY = 3
File5.txt:
AAA001
BBB175
File102.txt:
AAA005
BBB067
我是使用Ubuntu Linux 12.04的新手 - 但我希望有人可以提供协助。
答案 0 :(得分:3)
您可以按照以下方式执行此操作:
#!/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
- shell printf命令 - 用于打印格式化字符串AAA
- 字符串文字(表示“完全按照书面形式”)%03d
- 格式化字符串,打印一个前面带有3个零的十进制数字。\n
- 换行符BBB
- 另一个字符串文字%03d
- 与之前相同${i}
- 这是第一个格式化字符串(%03d
)中使用的值$(($RANDOM % 1000))
- $RANDOM
是一个系统变量,每次访问时都会为您提供一个随机数。 % 1000
取模数,以便得到0-999
之间的范围。这用于第二个格式化字符串(%03d
)> File${i}.txt
:输出重定向;创建并保存到文件(如果文件已存在则覆盖。答案 1 :(得分:2)
这是一个快速的单行程,可能会让你失望:
for i in {1..250}; do printf "AAA%03d\nBBB%03d" $i $(($RANDOM % 1000)) > "File${i}.txt"; done
答案 2 :(得分:1)
使用bash:
for i in {1..250}; do printf "AAA%03d\nBBB%03d\n" "$i" "$((RANDOM%1000))" > "File$i.txt"; done
答案 3 :(得分:0)
您可以为此
编写一个bash脚本#!/bin/bash
for (( i=1; i<=250; i++ ))
do
NUMBER=$[ ( $RANDOM % 999 ) + 100 ]
echo "AAA$i BBB$NUMBER" > File$i.txt
done