2017-10-28 4 views
0

親ディレクトリに拡張子* sacのファイルがあります。これらのファイルには地震波形のヘッダー情報が含まれています。私はすべてのファイルの特定のヘッダー情報を1つ下のファイルに印刷します。 ここまで私が何をしたのですか?すべてのファイルの特定の内容を読み込んでニュースファイルに書き込むためのシェルスクリプト

#!/bin/bash 
file=map 
for i in ./*sac 

do 

SLA=`saclhdr -STLA $i` 

SLO=`saclhdr -STLO $i` 

ELA=`saclhdr -EVLA $i` 

ELO=`saclhdr -EVLO $i` 

echo "MAP GREAT CIRCLE RAY PATHS USING PROJECT">file ; 

echo "$SLA $SLO " >>file; 

echo "$ELA $ELO " >>file; 

echo "PLOT EPICENTER LOCATIONS" >>$file; 

echo "$ELA $ELO " >>file; 

echo "PLOT STATION LOCATIONS">>$file ; 

echo "$SLA $SLO " >>file; 

done 

出力は次のとおりです。

MAP GREAT CIRCLE RAY PATHS USING PROJECT 

-10.4807 105.652 

-7.7592 67.8257 

PLOT EPICENTER LOCATIONS 

-7.7592 67.8257 

PLOT STATION LOCATIONS 

-10.4807 105.652 

ここで私は、私はすべてのファイルを指定されたコンテンツのすべてのファイルの1

+0

サンプルを入力してください。 – RavinderSingh13

+0

2つの入力ファイルがあるとします。出力はどのように表示されますか? – yacc

+0

2つのサンプルファイルの出力を指定できますか? @rehman – yacc

答えて

0
によって

SLA SLO 

ELA ELO 

1を印刷したい一つのファイルの印刷された情報を取得しています

問題はこの行です。

echo "MAP GREAT CIRCLE RAY PATHS USING PROJECT">file ; 

あなたは内容を上書きしています。使用>>の代わりに、>

1

あなたはこのようにそれを配置する必要があります:リダイレクトをファイルに継続的に追加し、それぞれにそれを再作成しないために、ループ本体のために超えて配置する必要があります

#!/bin/bash 
file=map 
echo "MAP GREAT CIRCLE RAY PATHS USING PROJECT" > "$file" 
for i in ./*sac 
do 
    SLA=$(saclhdr -STLA "$i") 
    SLO=$(saclhdr -STLO "$i") 
    ELA=$(saclhdr -EVLA "$i") 
    ELO=$(saclhdr -EVLO "$i") 
    echo "$SLA $SLO " 
    echo "$ELA $ELO " 
done >> "$file" 

順番。

+0

そのokですが、私は – rehman

+0

のような行を追加しなければなりません。 – rehman

関連する問題