シェルスクリプトの基礎 - ファイル内容を1行ずつ読み込む

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動

概要

シェルスクリプトにおいて、while read line文を使用して、ファイル内容を1行ずつ読み込ませるための方法を記載する。


標準入力へリダイレクトさせて読み込む

ファイルを標準入力へリダイレクトさせて、ファイル内容を1行ずつ読み込ませる。
具体的には、list.txtファイルの内容を読み込み、1行ずつechoコマンドで表示させる。

# list.txtファイルの内容
one
two
three


 #!/bin/bash
 while read line
 do
    echo $line
 done < ./list.txt


# 出力
one
two
three



ファイルを変数に格納して読み込む

ファイル内容をcatコマンドで表示させて、それを変数に格納し、ヒアドキュメントを使用して読み込む。
具体的には、list.txtファイル内容を変数DATAに格納して、ヒアドキュメントを使用して変数の内容を読み込む。

# list.txtファイルの内容 
one
two
three


 #!/bin/bash
 
 DATA=`cat ./list.txt`
 while read line
 do
    echo $line
 done << FILE
 $DATA
 FILE


# 出力
one
two
three



catコマンドでファイル内容を表示してパイプで渡す

ファイル内容をcatコマンドで表示させて、その結果をパイプを使用して読み込む。
具体的には、lixt.txtファイルの内容をcatコマンドで表示させて、その結果をパイプでwhile read line文に渡す。

# list.txtファイルの内容
one
two
three


 #!/bin/bash
 
 cat ./list.txt | while read line
 do
    echo $line
 done


# 出力
one
two
three