基本的なコンテンツを含む複数のファイルを作成する方法 - Parrot Linux

基本的なコンテンツを含む複数のファイルを作成する方法 - Parrot Linux

フォルダー内にコンテンツを含む x 個のファイルを作成する方法を知りたいです。

例えば:

ホーム ディレクトリにあるファイル テスト フォルダーに、基本的なコンテンツを含む 250 個のファイルを作成したいと考えています。

私が本当に支援が必要なのは、bash シェルを使用してテスト目的のコンテンツを含む多数のファイルを作成する方法だけです。

ご協力いただければ幸いです。

答え1

コンテンツを含むファイルを作成し、それを 250 回実行するループをコーディングできます。

for i in $(seq 1 250) ; do echo -n "content" > ~/test/file$i ; done

説明:

  • seq 1 250: 1 から 250 までの数字を表示します。これは、必要な実行回数をカウントするために使用されます。
  • echo -n "content" > ~/test/file$i: ホームディレクトリにある「test」フォルダ内のファイルに「content」を保存します。

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 個の空のファイルが作成されます。

Touch (この場合) は、ファイルが存在しない場合はファイルを作成します。空のファイルです。何かを含むファイルを作成したい場合は、ループ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

関連情報