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

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

每个文件有2行。

  1. AAAXXX (其中XXX = 001250 – 每个文件自动增加)
  2. BBBYYY (其中YYY = 3位随机数)

例:

  1. FILE1.TXT:

     AAA001 BBB175 
  2. File5.txt:

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

这里有一个快速的一行可能会启动你:

 for i in {1..250}; do printf "AAA%03d\nBBB%03d" $i $(($RANDOM % 1000)) > "File${i}.txt"; done 

使用bash:

 for i in {1..250}; do printf "AAA%03d\nBBB%03d\n" "$i" "$((RANDOM%1000))" > "File$i.txt"; done 

你可以为此写一个bash脚本

 #!/bin/bash for (( i=1; i<=250; i++ )) do NUMBER=$[ ( $RANDOM % 999 ) + 100 ] echo "AAA$i BBB$NUMBER" > File$i.txt done