Bashスクリプトで行ごとにファイルを読み取る方法

0 Comments

テキストファイルを一行ずつ処理できるBashスクリプトをどのように書くでしょうか。 まず、ファイルを行ごとに読み取るための構文とアプローチが必要です。 このアプローチの方法をこのチュートリアルで示します。

companyという名前のファイルがあるとします。会社名を含むtxt。 このファイルには、以下が含まれます。

会社。,txt
Samsung
Nokia
LG
Symphony
iphone

例-1:コマンドラインからファイルの内容を読み取る

たとえば、ファイル、会社を読み取りたいとします。txt、’cat’コマンドなしのコマンドラインから行ごとに行。 次のコマンドを実行してタスクを実行します。 whileループはファイル会社から各行を読み取ります。各ステップでtxtを作成し、後で印刷される$line変数に行の内容を格納します。

$行を読み込んでいる間;エコーを行います$行;完了<会社。,txt

例-2:スクリプトを使用したファイルコンテンツの読み込み

bashファイルを作成し、特定のファイルのコンテンツを読み込む ここでは、既存のファイル名は$filename変数に格納され、$n変数はそのファイルの行番号の値を保持するために使用されます。 前の例と同様に、whileループはこのファイルを行番号で読み取るために使用されます。

#!/bin/bash
ファイル名=”会社。txt”
n=1
読み取り中に行;do
#各行を読み取る
echo”行いません。, $n:$line”
n=$((n+1))
done<$filename

スクリプトを実行するには、次のコマンドを実行します。p>

$bash readfile1.sh

会社で’cat’コマンドを実行します。会社の元の内容を表示するtxtファイル。txtファイル。

$cat company.txt

例-3:コマンドラインからfilenameを渡してファイルを読み込む

bashファイルを作成し、次のスクリプトを追加します。, このスクリプトは、コマ 最初の引数の値は、読み取り用のファイル名を含む変数$1によって読み取られます。 ファイルが現在の場所に存在する場合、whileループは前の例のようにファイルを行ごとに読み取り、ファイルの内容を出力します。

#!/bin/bash
filename=$1
while read line;do
#reading each line
echo$line
done<$filename

従業員で上記のスクリプトを実行します。引数値としてtxtファイル。 出力にはemployeeのコンテンツが表示されます。,余分なスペースを削除してtxtファイル。 従業員の元のコンテンツを表示することができます。’cat’コマンドを使用してtxtファイル。

$bash readfile2.txtの従業員。txt
$cat従業員。txt

例-4:バックスラッシュエスケープを省略してファイルを読み込む

バックスラッシュエスケープを省略してファイルの各行を読み込む場合は、whileループのreadコマンドで’-r’オプションを使用する必要があります。

#!,/bin/bash
読み込み中-r行;do
#各行を読み込む
echo$line
done<company2.txt

company2という名前のファイルを作成します。txtとバックスラッシュ、以下のコマンドを実行スクリプトを実行するための. 出力には、バックスラッシュなしでファイルの内容が表示されます。p>

$bash readfile3.sh

多くのプログラミング目的でファイルを読み取る必要があります。 たとえば、各行を個別に読み取ることで、任意のファイルから特定のコンテンツを簡単に検索または照合できます。, そこで、必須の課題は他のプログラミング 簡単な例のファイルの読み込みでバスクリプトはこのチュートリアルです。 これらは、bashスクリプトのwhileループを使用してファイルコンテンツを行ごとに読み取り、スクリプトにより効率的に適用するのに役立ちます。 詳しくはビデオをご覧ください!


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です