UNIXシェルスクリプトでAWKを使用して、ファイル内の1つのパターンのインスタンスを別のパターンに置き換えて、新しいファイルに出力しようとしています。
具体的には、ファイル名がMYFILE.pcの場合、「g_MYFILE」(引用符なし)を含む「*MYFILE」のインスタンスを探しています。このために、私はgsub
AWKの関数を使用しています。
出力ファイルが正常に書き出され、必要に応じてすべてのインスタンスが置き換えられましたが、スクリプトは「MYFILE」(つまり星なし)のインスタンスも「g_MYFILE」に置き換えています。
スクリプトは次のとおりです。
awk -v MODNAM=${OUTPUT_FILE%.pc} '
{
gsub("\*"MODNAM, "g_" MODNAM);
print
}' ${INPUT_FILE} > ${FULL_OUTPUT_FILENAME}
スクリプトを明確にするために、次の変換を実行します。
- '* MYFILE'->'g_MYFILE'
- 'MYFILE'->'g_MYFILE'
最初の変換のみを実行したい。誰か提案はありますか?