4

各ファイルのファイル名が 1 ずつ増加する一連のファイルを生成したい ( File1.txtFile2.txtFile3.txt、 ... FileN.txt) ここでN = 250

各ファイルには 2 行あります。

  1. AAAXXX(どこXXX = 001250- 各ファイルの自動増加)
  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- シェルprintfコマンド - フォーマットされた文字列を出力するために使用
  • AAA- 文字列リテラル (「書かれているとおり」という意味)
  • %03d- フォーマットされた文字列。前にゼロが 3 つ埋め込まれた 10 進数が出力されます。
  • \n- 改行
  • BBB- 別の文字列リテラル
  • %03d- 前と同じ
  • ${i}- これは、最初の書式設定された文字列で使用される値です ( %03d)
  • $(($RANDOM % 1000))-$RANDOMアクセスするたびに乱数を提供するシステム変数です。の% 1000モジュロを取るため、 の間の範囲が得られます0-999。これは、2 番目の書式付き文字列 ( %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 に答える