我在用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/

10-11 08:17