2017-07-15 17 views
0

ファイルをbashスクリプトで1行ずつ読み込む際に問題があります。ここでのスクリプトは次のとおりです。ここでファイルをBashスクリプトで1行ずつ読む方法は?

#!/bin/bash 

file="cam.txt" 

while IFS=: read -r xf1 xf2 xf3 
do 
    printf 'Loop: %s %s %s\n' "$xf1" "$xf2" "$xf3" 
    f1=$xf1 
    f2=$xf2 
    f3=$xf3 
done < $file 
printf 'After: %s %s %s\n' "$f1" "$f2" "$f3" 

cam.txt次のとおりです。

192.168.0.159 
554 
554 

ここで出力されます:

Loop: 192.168.0.159 
Loop: 554 
Loop: 554 
After: 554 

問題がある可能性がありますか?

+0

#!/bin/bash file="cam.txt" while read -r line do printf 'Line: %s\n' "$line" current=$line last=$current secondlast=$last printf 'Loop: %s %s %s\n' "$current" "$last" "$secondlast" done < $file printf 'After: %s %s %s\n' "$current" "$last" "$secondlast" 

簡単なバージョンを。 – Mat

+0

を追加しました。ご注意いただきありがとうございます@Mat – voyvoda

+1

今何をしようとしているのか不明です。あなたのコードと入力ファイルがあれば、期待どおりの出力が得られます。あなたが達成しようとしていることをより詳しく説明してください。 – Mat

答えて

-1

あなたのコードでは、各行を1つの変数に入れたいと思っています。

このスクリプト(私はこれが簡単かつきれいに行うことができます知っているが、これはシンプルで読みやすい例です)試してみてください。あなたのファイルのサンプルを表示

{ read -r first; read -r second; read -r third; } <cam.txt 
printf 'After: %s %s %s\n' "$first" "$second" "$third" 
関連する問題