4

我想生成一系列文件,其中每个文件的文件名应增加 1 ( File1.txt, File2.txt, File3.txt, ... FileN.txt) 其中N = 250

每个文件有 2 行。

  1. AAAXXX(在哪里XXX = 001-250每个文件自动增加)
  2. BBBYYY(其中YYY = 3数字随机数)

例子:

  1. 文件 1.txt:

    AAA001
    BBB175
    
  2. 文件5.txt:

    AAA005
    BBB067
    
  3. 文件 102.txt:

    AAA102
    BBB765
    

我是使用 Ubuntu Linux 12.04 的新手——但我希望有人能提供帮助。

4

4 回答 4

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}- 指定从 1 到 250 的迭代的 bash 方式,增量大小为 1。
  • printf- shell printf命令 - 用于打印格式化字符串
  • AAA- 字符串文字(意思是“完全按照书面形式”)
  • %03d- 格式化的字符串,这将打印一个前面用 3 个零填充的十进制数。
  • \n- 新队
  • BBB- 另一个字符串文字
  • %03d- 和之前一样
  • ${i}- 这是第一个格式化字符串 ( %03d)中使用的值
  • $(($RANDOM % 1000))-$RANDOM是一个系统变量,每次访问它时都会为您提供一个随机数。取% 1000模,所以你得到一个范围 betwee 0-999。这用于第二个格式化字符串 ( %03d)
  • > File${i}.txt:输出重定向;创建并保存到文件(如果文件已经存在,则覆盖。
于 2012-11-29T19:08:38.583 回答
2

这是一个快速的单线,可能会让你开始:

for i in {1..250}; do printf "AAA%03d\nBBB%03d" $i $(($RANDOM % 1000)) > "File${i}.txt"; done
于 2012-11-29T18:58:28.270 回答
1

使用 bash:

for i in {1..250}; do printf "AAA%03d\nBBB%03d\n" "$i" "$((RANDOM%1000))" > "File$i.txt"; done
于 2012-11-29T19:01:27.207 回答
0

您可以为此编写一个 bash 脚本

#!/bin/bash      
for (( i=1; i<=250; i++ ))
do
    NUMBER=$[ ( $RANDOM % 999 )  + 100 ]
    echo "AAA$i BBB$NUMBER" > File$i.txt
done
于 2012-11-29T18:59:10.740 回答