同じファイル拡張子を持つ複数のファイルの読み書き

同じファイル拡張子を持つ複数のファイルの読み書き

10234.su、10234.ph、10234.thという3つのファイルセットがあります。 10234.suから一部のデータを抽出し、10234.phおよび10234.thに書き込むために使用できるシェルスクリプトがありますが、一度に1つのファイルでのみ機能できます。ファイル(xxx.su)を1つずつ自動的に読み取り(xxx.phとxxx.th)を適切に書き込むように変更する必要があります。 3つのファイルは常に同じ名前を持ちます。はい - 10234.su、10238.su、10242.suなど、名前の異なる.suファイルがたくさんあります。そのうちの1つを自動的に読みたいです。

私のスクリプトは次のとおりです -

rm hdrfile binary 

for i in *.su; do 
sugethw <"$i" output=geom key=cdp >hdrfile
a2b <hdrfile n1=994 >binary
echo "$i -> sugethw <"$i" output=geom key=cdp >hdrfile a2b <hdrfile n1=994 >binary"

for j in *.ph; do 
sushw <"$j" infile=binary key=cdp >test1.su
rm "$j"
mv test.su "$j"
echo "$j -> sushw <"$j" infile=binary key=cdp >test.su rm "$j" mv test.su "$j""

for k in *.th; do
sushw <"$k" infile=binary key=cdp >test2.su
rm "$k"
mv test.su "$k"
echo "$k -> sushw <"$k" infile=binary key=cdp >test.su rm "$k" mv test.su "$k""

rm hdrfile binary
done
done
done 

ありがとうございます!

答え1

次のbashシェルスクリプトを試してください。

echoテストされ、すべてのファイルで動作します。私の行と行を削除し、cpで実際の行のコメントを削除する必要があります。sugethwa2bsushw

mv使用しない限り、移動する前にファイルを削除する必要はないようですmv -i

#!/bin/bash

for filnam in *.su
do
 tmp=${filnam%%.su}
 i="$filnam"
 j="${tmp}.ph"  # guessing they need not be nested
 k="${tmp}.th"  # guessing they need not be nested

 echo "$tmp.hdr" > hdrfile  # replacing lines with commands unknown to me
 echo "$tmp.bin" > binary   # replacing lines with commands unknown to me
 #sugethw <"$i" output=geom key=cdp >hdrfile
 #a2b <hdrfile n1=994 >binary
 echo "$i -> sugethw <\"$i\" output=geom key=cdp >hdrfile a2b <hdrfile n1=994 >binary"

 cp binary test1.su  # replacing line with command unknown to me
 #sushw <"$j" infile=binary key=cdp >test1.su
 #rm "$j"
 mv test1.su "$j"
 echo "$j -> sushw <\"$j\" infile=binary key=cdp >test.su rm \"$j\" mv test.su \"$j\""

 cp binary test2.su  # replacing line with command unknown to me
 #sushw <"$k" infile=binary key=cdp >test2.su
 #rm "$k"
 mv test2.su "$k"
 echo "$k -> sushw <\"$k\" infile=binary key=cdp >test.su rm \"$k\" mv test.su \"$k\""
 echo "---"
done 

rm hdrfile binary

関連情報