我正在尝试在 unix shell 脚本中使用 AWK 将文件中的一种模式的实例替换为另一种模式并将其输出到新文件。
具体来说,如果文件名是 MYFILE.pc,那么我正在寻找带有 'g_MYFILE' 的 '*MYFILE' 实例(不带引号)。为此,我正在使用gsub
AWK 中的函数。
我已经成功地写出了输出文件并根据需要替换了所有实例,但是,脚本也用 'g_MYFILE' 替换了 'MYFILE' 的实例(即没有星号)
这是脚本:
awk -v MODNAM=${OUTPUT_FILE%.pc} '
{
gsub("\*"MODNAM, "g_" MODNAM);
print
}' ${INPUT_FILE} > ${FULL_OUTPUT_FILENAME}
为了阐明脚本执行以下转换:
- '*MYFILE' --> 'g_MYFILE'
- 'MYFILE' --> 'g_MYFILE'
我只希望执行第一次转换。有没有人有什么建议?