私は awk で非常に新しく、これを機能させようとして頭を叩いています。「image.list」内のファイルのリストを取得し、そこから「info」ファイルを作成しようとしています。ファイル名の途中から正規表現 (8 ~ 11 桁の数字) に一致する文字列を取得し、その一致のみを「情報ファイル」の指定された場所に出力する必要があります。その最後の部分は、私がやってのけるのに苦労している部分です。それを修正する助けが欲しいです。
これが私のテストファイルリストです:
SURGERY0001275678image1.jpg
SURGERY11134900211image2.jpg
SURGERY19257012image3.jpg
SURGERY273142590image4.jpg
これが私の現在のコードです:
awk 'BEGIN {print "-----TEST TAG FILE\tENCOUNTERS-----";}
> {print "FILE: /tmp/imagetest/"$1,"\t","ENCOUNTER: ",($1~/^[0-9]{8,11}$/);}
> END{print "END REPORT";
> }' image.list > upload.tag
そして、ここに私の現在の出力があります:
-----TEST TAG FILE ENCOUNTERS-----
FILE: /tmp/imagetest/SURGERY0001275678image1.jpg ENCOUNTER: 0
FILE: /tmp/imagetest/SURGERY11134900211image2.jpg ENCOUNTER: 0
FILE: /tmp/imagetest/SURGERY19257012image3.jpg ENCOUNTER: 0
FILE: /tmp/imagetest/SURGERY273142590image4.jpg ENCOUNTER: 0
END REPORT
表示する必要があるのは、「ENCOUNTER:」の後のファイル名の途中にある 8 ~ 11 桁の数字です。これまでに試したものはすべて、ファイル名全体または「0」のいずれかを出力します。
私はおそらくコースから外れているので、専門家の助けを借りたいと思います!