13,005
回編集
150行目: | 150行目: | ||
while文とreadコマンドを組み合わせて使用すると、テキストファイルの内容を1行ずつ処理できる。<br> | while文とreadコマンドを組み合わせて使用すると、テキストファイルの内容を1行ずつ処理できる。<br> | ||
<br> | <br> | ||
このセクションでは、以下に示すlist.txtファイルを使用する。<br> | |||
<br> | |||
# list.txtファイルの内容 | # list.txtファイルの内容 | ||
one | one | ||
159行目: | 156行目: | ||
three | three | ||
<br> | <br> | ||
==== テキストファイルを1行のみ読み込む ==== | |||
readコマンドは、ユーザからの入力の他に、ファイルからの入力を1行のみ読み込むことができる。<br> | |||
<source lang="sh"> | |||
# 実行 | |||
read line < list.txt | |||
echo "$line" | |||
# 出力 | |||
AAA 100 | |||
</source> | |||
<br> | |||
==== 標準入力へリダイレクトさせて読み込む ==== | |||
ファイルを標準入力へリダイレクトさせて、ファイル内容を1行ずつ読み込ませる。<br> | |||
以下の例では、list.txtファイルの内容を読み込み、1行ずつechoコマンドで表示させている。<br> | |||
<source lang="sh"> | <source lang="sh"> | ||
# 実行 | |||
while read line | while read line | ||
do | do | ||
echo $line | echo $line | ||
done < ./list.txt | done < ./list.txt | ||
# 出力 | # 出力 | ||
one | one | ||
two | two | ||
three | three | ||
</source> | |||
<br> | <br> | ||
==== ファイルを変数に格納して読み込む ==== | ==== ファイルを変数に格納して読み込む ==== | ||
ファイル内容をcatコマンドで表示させて、それを変数に格納し、ヒアドキュメントを使用して読み込む。<br> | ファイル内容をcatコマンドで表示させて、それを変数に格納し、ヒアドキュメントを使用して読み込む。<br> | ||
以下の例では、list.txtファイル内容を変数DATAに格納して、ヒアドキュメントを使用して変数の内容を読み込んでいる。<br> | |||
<br> | |||
<source lang="sh"> | <source lang="sh"> | ||
DATA=`cat ./list.txt` | DATA=`cat ./list.txt` | ||
188行目: | 194行目: | ||
$DATA | $DATA | ||
FILE | FILE | ||
# 出力 | # 出力 | ||
one | one | ||
two | two | ||
three | three | ||
</source> | |||
<br> | <br> | ||
==== catコマンドでファイル内容を表示してパイプで渡す ==== | ==== catコマンドでファイル内容を表示してパイプで渡す ==== | ||
ファイル内容をcatコマンドで表示させて、その結果をパイプを使用して読み込む。<br> | ファイル内容をcatコマンドで表示させて、その結果をパイプを使用して読み込む。<br> | ||
以下の例では、lixt.txtファイルの内容をcatコマンドで表示させて、その結果をパイプでwhile readコマンドに渡している。<br> | |||
<br> | |||
<source lang="sh"> | <source lang="sh"> | ||
# 実行 | |||
cat ./list.txt | while read line | cat ./list.txt | while read line | ||
do | do | ||
echo $line | echo $line | ||
done | done | ||
# 出力 | # 出力 | ||
one | one | ||
two | two | ||
three | three | ||
</source> | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:シェルスクリプト]] | [[カテゴリ:シェルスクリプト]] |