2012-02-28 17 views
2

ディレクトリ/tmp/logのファイルからデータを抽出する必要があります。 私は単一のファイルから問題を抽出していません。複数のファイルからデータ行を読み取る方法

#!/bin/bash 
while read line; 
do 
    echo $line 
done < /tmp/log/file1 

私は複数のファイル/tmp/log/*でそれを試してみたいが、それは誤りambiguous redirectを返しました。 どうすればいいですか?

答えて

5

あなたはforループ内のファイルを読むことができる:

for file in /tmp/log/*; do 
    while read -r line; do 
     echo "$line" 
    done < "$file" 
done 

戦略をただでファイル1のそれぞれの処理の面倒をforループを使用してwhileループをラップされます時間。

+0

これは私が探しているものです。おかげでjcollado! – conandor

+0

forループのwhileループへのforループ供給ファイルです。 – kartik

0

いけない正確にあなたが必要WAHT .. は、おそらくあなたは、この探している知っている:

cat /tmp/log/* 

が、これは何が必要ですか?次のように

for line in `cat /tmp/log/*` 
do  
echo $line  
done 
+0

私は作業をしますが、データを行単位で処理したいです。 – conandor

+0

この場合、プロセス置換を使用できます: 'while read line;行う ...; done <<(cat/tmp/log/*) ' –

関連する問題