生成具有相同结构的多个文件

时间:2012-11-29 18:47:40

标签: linux bash

我想生成一系列文件,其中每个文件的文件名应增加1(File1.txtFile2.txtFile3.txt,... {{1} })FileN.txt

每个文件有2行。

  1. N = 250(其中AAAXXXXXX = 001 - 每个文件自动增加)
  2. 250(其中BBBYYY数字随机数)
  3. 示例:

    1. FILE1.TXT:

      YYY = 3
    2. File5.txt:

      AAA001
      BBB175
      
    3. File102.txt:

      AAA005
      BBB067
      
    4. 我是使用Ubuntu Linux 12.04的新手 - 但我希望有人可以提供协助。

4 个答案:

答案 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