我正在为 awk 替换而苦苦挣扎,出于某种原因,下面的代码没有替换任何东西,它只是打印出未改变的输出。谁能看到我在这里缺少什么?非常感谢任何帮助! (PS!$DOCPATH 和 $SITEPATH 是 shell 变量,它们在我的 awk 设置中工作得很好)。
awk -v docpath="$DOCPATH" -v sitepath="$SITEPATH" '{ sub( /docpath/, sitepath ) } { print }'
最佳答案
说:
sub( /docpath/, sitepath )
导致 awk
替换模式 docpath
,而不是变量 docpath
。
你需要说:
awk -v docpath="$DOCPATH" -v sitepath="$SITEPATH" '{sub(docpath, sitepath)}1' filename
关于bash - awk 替换 shell 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20629581/