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