私は awk で最初の試みを行っているところですが、おそらく簡単な質問が 1 つあります。ディレクトリを一覧表示し、文字列に基づいて一覧から情報を抽出しようとしています。私が試しているbashスクリプトは次のとおりです。
ls *.hdf > temporary.list
nom2=`awk 'BEGIN {FS = "." } ; { $1 ~ /'$year$month'/ } { print $2 }' temporary.list `
file=$year$month.$nom2.hdf
file2=$year$month.hdf
ここで、年と月は for ループで変化します (1981 年から 1985 年および 01 から 12)。temporary.list ファイルは、次のような 12 行で構成されています。
198201.s04m1pfv51-bsst.hdf
198202.s04m1pfv51-bsst.hdf
198203.s04m1pfv51-bsst.hdf
198204.s04m1pfv51-bsst.hdf
198205.s04m1pfv51-bsst.hdf
198206.s04m1pfv51-bsst.hdf
198207.s04m1pfv51-bsst.hdf
198208.s04m1pfv51-bsst.hdf
198209.s04m1pfv51-bsst.hdf
198210.s04m1pfv51-bsst.hdf
198211.s04m1pfv51-bsst.hdf
198212.s04m1pfv51-bsst.hdf
年月に応じてファイルを選択したい。問題は、私の awk 文が異なるレジスターとして異なる行を取得していないように見えることです。スクリプトの出力は次のとおりです。
nom2 = h s04m1pfv51-bsst h s04m1pfv51-bsst h s04m1pfv51-bsst h
s04m1pfv51-bsst h s04m1pfv51-bsst h s04m1pfv51-bsst h s04m1pfv51-bsst
s04m1pfv51-bsst s04m1pfv51-bsst s04m1pfv51-bsst s04m1pfv51-bsst
s04m1pfv51-bsst
file = 198201.h s04m1pfv51-bsst h s04m1pfv51-bsst h
s04m1pfv51-bsst h s04m1pfv51-bsst h s04m1pfv51-bsst h s04m1pfv51-bsst
h s04m1pfv51-bsst s04m1pfv51-bsst s04m1pfv51-bsst s04m1pfv51-bsst
s04m1pfv51-bsst s04m1pfv51-bsst.hdf
file2= 198201.hdf
単純な構文エラーかもしれませんが、助けていただければ幸いです。
ありがとう