ディレクトリ内のファイルをBashループする

Bash Loop Through Files Directory



Bashを含むUbuntuでは、ループによって複数のファイルに操作を適用できるようになりました。ループは、ユーザーが小さなコード行を使用して同じロジックをアイテムに繰り返し適用できるため、最も効果的な方法です。

ディレクトリ内のファイルをループする概念を理解するには、Ubuntuアプリケーションとサービスにアクセスする必要があります。いくつかの特権がある場合、ファイルとディレクトリでのみ操作できます。







UbuntuオペレーティングシステムにBashをインストールする必要があります。一部のインストールでは、パッケージの更新時にデフォルトでインストールされます。すでにインストールされている場合は、4以上である必要があるため、バージョンをアップグレードする必要があります。現在のガイドを続行するには、4以上のバージョンを維持する必要があります。システムにプリインストールされているBashのバージョンを確認するには、 Ubuntuターミナルのコマンド。



$バッシュ - バージョン



したがって、ファイルとディレクトリに対していくつかの機能を実行する必要があります。以下に説明するコマンドは、任意のディレクトリで実行できます。ただし、正確には、新しいディレクトリを作成して、開いたときにこのディレクトリのすべての所有物に直接簡単にアクセスできるようにすることをお勧めします。





最初のステップは、ディレクトリを作成することです。ディレクトリabcのサンプル名を取得しました。コマンドを実行してディレクトリを作成します。

$mkdirabc



ディレクトリを作成したら、その上ですべてのコマンドを実行する必要があります。したがって、ディレクトリの作成後、そのディレクトリに切り替えます。以下に引用するコマンドを使用します。

$CDabc

ディレクトリに移動したら、touchコマンドを使用していくつかのファイルを作成します。

$接するfile1.txt

Ubuntuでファイルを作成するには、多くの方法が使用されます。 touchコマンドに加えて、ここではechoコマンドを使用してファイルを作成し、その中のコンテンツを1つのコマンドでまとめて追加しました。

$捨てたLinux、ubuntu、Postgresql>>file7.txt

このファイルは、現在デフォルトで実行されている単純なディレクトリに作成されます。したがって、新しく作成されたディレクトリの名前は、コマンドプロンプトでは追加されません。 touchコマンドで範囲と展開を使用してファイルを作成することもできます。

$接するファイル-{{1..8}。txt

.txt拡張子の新しいファイルでこのコマンドを使用すると、単一のコマンドを使用して作成されます。

その後、新しく作成されたディレクトリをループできます。ファイル名を表示します。ディレクトリに存在するファイルをループする必要があるため、ループが必要です。ループは、より少ない時間でデータをフェッチし、より少ない入力で済むため、非常に効果的に使用できます。ここでは、forループを使用します。このループを使用すると、各ファイル名が次の行に表示されます。

$にとって ファイル *;NS 捨てた $ file;終わり

*は、このディレクトリに存在するすべてのファイルに使用されます。これにより、「for」ループですべてのファイルを取得できます。ただし、出力を正確にするために、アスタリスク記号を使用していくつかの用語を追加できます。たとえば、「file- *」は、ファイルから始まるすべてのファイルに使用されます。また、*。txtを使用して、拡張子が.txtのファイルをフェッチします。これらの例については、この記事でさらに使用します。

このループは、ディレクトリからすべてのファイルをフェッチし、echoコマンドを使用してすべてのファイルを表示するように機能します。ここでの$記号は、ファイルの名前を表します。結果から、各ファイル名が表示されていることがわかります。

ファイル名を表示して作成されたファイルを確認したら、作成されたファイルが空であるため、ファイルに値を入力します。これは、テキストエディタで各ファイルを開いてからデータを書き込むことにより、手動で実行できます。 2番目のオプションは、ターミナルのコマンドを使用して各ファイルにデータを入力することです。ただし、ファイルごとに1つのコマンドを使用して、各ファイルにデータを入力するには時間がかかります。ただし、1つのコマンドでforループを使用することにより、簡単かつ集合的に実行できます。

$にとって ファイル *;NS 捨てた -2 $ file nLinux Ubuntu>> $ file;終わり

コマンドの実行後、作成した各ファイルに値が入力されています。 echoとともに使用すると、「-e」フラグはファイル内の新しい行を保持します。入力したデータを確認するには、「abc」ディレクトリに移動します。次に、任意のテキストファイルを開きます。ファイルはもう空ではありません。

‘$ fileはファイルの最初にファイル名を表示し、 nはこの後に使用される単語を別の行にシフトするために使用されるため、入力したデータは2行目にプレビューされます。コマンドで入力したデータを確認することもできます。

$にとって ファイル *;NS $ file;終わり

Catコマンドは、ディレクトリのすべてのファイルに存在するデータをフェッチするために使用されます。

データの入力とフェッチの両方の手順は、1つのコマンドで実行できます。

$にとって ファイル *;NS 捨てた-と$ file nbashプログラミング>> $ file; $ file;終わり

最初のステップは、ファイルにデータを書き込んでから表示することです。コマンドを実行すると、出力は次のようになります。

各ファイルには同じ値が含まれています。これは「for」ループが原因です。

データのフェッチや値の挿入などのループはわかっていますが、このループはバックアップの作成にも使用されます。これらのファイルの末尾には、拡張子.bakが付いています。次に、シェルでbackupコマンドを実行して、各ファイルのバックアップを確認します。

$にとって ファイル *;NS cp $ file $ file。後ろ;終わり;

cpキーワードは、すべてのファイルをバックアップするために使用されます。次に、このコマンドが適用されているファイルを確認します。このコマンドは次のように使用します。

$ls- NS

これで、ファイルの詳細が表示されていることが出力からわかります。日付、ファイル名、ユーザー名、および削除された時刻。また、各ファイルの正確なコピーがあります。

jpegファイルのみが必要な場合。これをコマンドで使用します

$にとって ファイル *.jpeg;NS 捨てた $ file;終わり

これにより、画像の名前のみが表示されます。

単純な検索でも同じ機能を実行できます。拡張子が.shのすべてのファイルをフェッチします。

$探す。 - 名前*NS

forループでキーワードfindを使用します。

$にとって ファイル *;NS探す。ファイル。*;終わり

これにより、すべてのファイルが現在のディレクトリに移動します。これらの拡張子は.bak、.jpeg、.txtです。 NS。

ここで、すべてのディレクトリファイルの名前とその中のデータを確認する場合は、これも「for」ループによって実行されます。

$にとって ファイル *;NS ファイル $ file;終わり

結論

Bashでループを使用し、Linuxオペレーティングシステムで実行することで、ディレクトリ内のファイルをループすることは、私たちが知っているように、もはや難しくありません。このチュートリアルは、「for」ループを使用してディレクトリで操作を作成、アクセス、および実行するための完全なガイドです。