複数のファイルに取り組んでおり、次の名前で保存されます。
N.YMDH.U.A.1.SAC
N.YMDH.U.D.2.SAC
N.YMDH.U.E.3.SAC
ちょっと待って...
私には.txt
次のようなファイルもあります。YMDH_arrival_time.txt
N.YMDH.U.A.1.SAC 5.000 7.000
N.YMDH.U.D.2.SAC 7.321 4.313
N.YMDH.U.E.3.SAC 3.243 7.876
ちょっと待ってください....ファイル名が一致したら、同じ入力行を含むファイルに対してコマンドを実行するスクリプトを作成したいと
思います。$1
$2
私は
#### $fileを1つずつ読みたいので、temp_file.txtの長さは1行にすぎません。その後、後で同じファイルを読み込み、.txtファイルの値を追加してから、プロセスを繰り返します。
for file in /Documents/Scaling/YMDH/*.SAC do;
awk '{$1 ~ /$file/ {print $1 $2 $3}' /Documents/Scaling/YMDH_arrival_time.txt > temp_file.txt
#### in hope to find the row which matches and print that row into a new txt file
SAC <<EOF
r $file
CHNDHR T (I want to put the value of $2 of temp_file.txt here)
w $file.done
quit
EOF
done
どんな助けや選択肢にも感謝します。ありがとう
答え1
YMDH_arrival_time.txt
ファイルの形式が固定されている場合は、<string> <number> <number>
次の方法で十分です。grep+猫方法:
grep -f <(cat /Documents/Scaling/YMDH/*.SAC) YMDH_arrival_time.txt > temp_file.txt
答え2
既存の方法に適応するには、単に以下を使用します。
変数=$(cat temp_file.txt)
しかし、RomanPerekhrestの方法についてのコメントを確認してください。