cshフォーマットを使用してからしばらく経ちましたが、いくつかの問題が発生しています。Matlabでの実行は非常に簡単に思えますが、操作しようとしているプログラムのために、ターミナルでこれを実行する必要があります。
これが私がやりたいことです:私はこのように構成されたファイルdel.txtを持っています
1
2
3
4
したがって、各値は独自の行にあり、すべてのデータに対して1つの列があります。ディレクトリ内に他のファイルがたくさんあります。たとえば、値1(この場合は1)をファイル1と照合し、値2をファイル2と照合します。これが私がしたことです...
コード:
!/ bin / csh
foreach a(cat del.txt
)
foreach sta(ls *.HHZ
)
echo a is $a
echo $sta
cat <<END>>macro.m
r $ a
r $ sta
終わり
sac macro.m
rm macro.m
終わり
終わり
ただし、私が達成したのは、del.txt内のすべての値と各ファイルをループしてから、ディレクトリ内の次のファイルに移動し、すべての値をループすることです。正しい値を一致させるためにこれがどのような形式であるかを理解するのに問題があります。それらを一致させることができるまで、私はまだスクリプト内で多くのことをしていません。助けてください誰かが私が間違っていることを教えてもらえますか?foreachコマンドが各ファイルのすべてのコマンドを実行することを読みましたが、これを回避する方法を見つけることができませんでした。私がやりたいのは、del.txtから値1を取得し、ディレクトリからファイル1(sta)と照合してループを終了し、次にdel.txtから値2を取得して、ディレクトリからファイル2と照合することです( sta)。ファイルの1つのサブセットに対して、cshを使用した単純な反復以上のことは行ったことがありません。値を相互に参照する方法がわかりません。どんな助けでも大歓迎です。私はすべてを書き出すことなくこれを行う簡単な方法を見つけていません。'for'および'while'コマンドを確認しました。簡単な方法がある場合は表示されません。
乾杯、K