フォルダの内容を含むxファイルを作成する方法を知りたいです。
たとえば、
私のホームディレクトリのfiles testフォルダに基本コンテンツを含む250個のファイルを作成したいと思います。
私にとって本当に助けが必要なのは、bashシェルを使用してテスト目的でコンテンツを含む大量のファイルを作成する方法です。
どんな助けでも大変感謝します。
答え1
コンテンツを含むファイルを作成し、250回実行するループを作成できます。
for i in $(seq 1 250) ; do echo -n "content" > ~/test/file$i ; done
説明する:
seq 1 250
:1から250までの数字を表示します。 forはそれを使用して実行する必要がある回数を計算します。echo -n "content" > ~/test/file$i
:「内容」をホームディレクトリの「test」フォルダにあるファイルに保存します。
echo -n > file$i
私は次のものより速いので、使用することを好みますtouch file$1
。
>> time ./01.sh
./01.sh 0,03s user 0,06s system 28% cpu 0,316 total
>> time ./02.sh
./02.sh 0,01s user 0,00s system 77% cpu 0,017 total
01.shコンテンツ:
#!/bin/bash
for i in {001..250} ; do touch ./01/file$i ; done
02.shコンテンツ:
#!/bin/bash
for i in {001..250} ; do echo -n > ./02/file$i ; done
答え2
まず、次のような単純なbash forループで始めることができます。
for i in {001..250} ; do touch ./file$i ; done
これにより、現在のディレクトリにfile001〜file250という名前の空の250ファイルが作成されます。
タッチ(この場合)は、ファイルが存在しない場合にのみ生成されます。ファイルが空です。何かを含むファイルを作成するには、ループdo
部分を変更できますfor
。たとえばdo cp ./master.file ./newfile.$i
、master.fileというファイルを250個の新しいファイル(newfile.001からnewfile.250まで)にコピーします。
とても混乱していますか?この機能がbashでどのように機能するかを理解するのに少し時間がかかりましたが、一度理解した後はほぼ毎日使用します。だから楽に聞いてください。それでは、より多くおよび/またはより良い説明をするよう努めます。
答え3
以前の(非常に良い)答えを補うために、ファイルに何かを置くことに焦点を当てます。この場合、3つのランダムな英語の単語とランダムな数字です。
$ for a in {001..009}
do
(shuf -n 3 /usr/share/dict/words ; echo $RANDOM) > FILE_$a
done
生成されたファイルの例:
$ cat FILE_005
atrophy
grays
backdate
9612