「シェルスクリプトの基礎 - ファイル内容を1行ずつ読み込む」の版間の差分
ナビゲーションに移動
検索に移動
細 (文字列「<source」を「<syntaxhighlight」に置換) |
細 (文字列「</source>」を「</syntaxhighlight>」に置換) |
||
18行目: | 18行目: | ||
echo $line | echo $line | ||
done < ./list.txt | done < ./list.txt | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
# 出力 | # 出力 | ||
45行目: | 45行目: | ||
$DATA | $DATA | ||
FILE | FILE | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
# 出力 | # 出力 | ||
68行目: | 68行目: | ||
echo $line | echo $line | ||
done | done | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
# 出力 | # 出力 |
2021年11月24日 (水) 18:08時点における版
概要
シェルスクリプトにおいて、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