「シェルスクリプトの基礎 - ファイルとディレクトリ」の版間の差分

ナビゲーションに移動 検索に移動
150行目: 150行目:
while文とreadコマンドを組み合わせて使用すると、テキストファイルの内容を1行ずつ処理できる。<br>
while文とreadコマンドを組み合わせて使用すると、テキストファイルの内容を1行ずつ処理できる。<br>
<br>
<br>
==== 標準入力へリダイレクトさせて読み込む ====
このセクションでは、以下に示すlist.txtファイルを使用する。<br>
ファイルを標準入力へリダイレクトさせて、ファイル内容を1行ずつ読み込ませる。<br>
具体的には、list.txtファイルの内容を読み込み、1行ずつechoコマンドで表示させる。<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
  </source>
   
<br>
  # 出力
  # 出力
  one
  one
  two
  two
  three
  three
</source>
<br>
<br>
==== ファイルを変数に格納して読み込む ====
==== ファイルを変数に格納して読み込む ====
ファイル内容をcatコマンドで表示させて、それを変数に格納し、ヒアドキュメントを使用して読み込む。<br>
ファイル内容をcatコマンドで表示させて、それを変数に格納し、ヒアドキュメントを使用して読み込む。<br>
具体的には、list.txtファイル内容を変数DATAに格納して、ヒアドキュメントを使用して変数の内容を読み込む。<br>
以下の例では、list.txtファイル内容を変数DATAに格納して、ヒアドキュメントを使用して変数の内容を読み込んでいる。<br>
<br>
# list.txtファイルの内容
one
two
three
<br>
  <source lang="sh">
  <source lang="sh">
  DATA=`cat ./list.txt`
  DATA=`cat ./list.txt`
188行目: 194行目:
  $DATA
  $DATA
  FILE
  FILE
  </source>
   
<br>
  # 出力
  # 出力
  one
  one
  two
  two
  three
  three
</source>
<br>
<br>
==== catコマンドでファイル内容を表示してパイプで渡す ====
==== catコマンドでファイル内容を表示してパイプで渡す ====
ファイル内容をcatコマンドで表示させて、その結果をパイプを使用して読み込む。<br>
ファイル内容をcatコマンドで表示させて、その結果をパイプを使用して読み込む。<br>
具体的には、lixt.txtファイルの内容をcatコマンドで表示させて、その結果をパイプでwhile read line文に渡す。<br>
以下の例では、lixt.txtファイルの内容をcatコマンドで表示させて、その結果をパイプでwhile readコマンドに渡している。<br>
# list.txtファイルの内容
one
two
three
<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
  </source>
   
<br>
  # 出力
  # 出力
  one
  one
  two
  two
  three
  three
</source>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:シェルスクリプト]]
[[カテゴリ:シェルスクリプト]]

案内メニュー