2012-11-29 60 views
4

我要生成一系列文件,其中每個文件的文件名應增加1(File1.txtFile2.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新手 - 但我希望有人能幫助。

+0

你只是想用bash shell腳本來做這件事嗎 –

回答

2

下面是一個簡單的一行,可能您開始使用:

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

+1比我想發佈的內容好得多,我暗中羞愧 – slezica

+0

$ RANDOM 3位數字的長度是多少 – imreal

+0

我剛剛開始使用OP – gpojd

0

你可以寫一個bash腳本這

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

幾個問題:1)這將'AAA'和'BBB'放在同一行; 2)這不會根據需要給數字填充:'AAA5 BBB17'; 3)'$ RANDOM%999'作爲一個隨機的3位候選人排除999; 4)'+ 100'不包括'000 - 099'作爲隨機的3位候選人。 –

+0

它過去的午夜在這裏和周圍的咖啡,抱歉的錯誤。 – Chipmunk

+0

感謝您的幫助! – user1864160

1

使用bash:

for i in {1..250}; do printf "AAA%03d\nBBB%03d\n" "$i" "$((RANDOM%1000))" > "File$i.txt"; done 
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,的1
  • printf增量大小的bash的方式 - 殼printf命令 - 用於打印格式的字符串
  • AAA - 串字面意思(意思是「完全如書面」)
  • %03d - 格式化的字符串,這會打印一個十進制數字,前面加上3個零。
  • \n - 換行符
  • BBB - 另一個字符串文字
  • %03d - 以前一樣
  • ${i} - 這是在第一格式的字符串中使用的值(%03d
  • $(($RANDOM % 1000)) - $RANDOM是一個系統變量每次訪問時爲您提供一個隨機數。 % 1000取模,所以你得到的範圍在0-999之間。這用於第二個格式化的字符串(%03d
  • > File${i}.txt:輸出重定向;創建並保存到文件(覆蓋文件已存在)
相關問題