bash - awk 替换 shell 变量

标签 bash variables awk substitution

我正在为 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/

相关文章:

node.js - Gitlab-ci 脚本和 ssh 中的 Nvm

bash - 解析命令和命令选项的 bash 变量

variables - JasperReports 计数器变量总是递增

mysql - 为什么当我使用 cast 创建日期并将其设置为 mysql 变量时,它存储为 BLOB?

linux - 使用awk格式化没有制表符的ls输出?

bash - telnet redis bash 脚本

linux - Unix,替换错误错误?

ruby-on-rails - 在 ruby​​ on Rails 中访问另一种方法的变量

linux - 使用 awk 在不同行上对多个字段进行数学运算

unix - 使用 awk 命令从文件中提取第一行