awk - 在 awk 输出中使用变量

标签 awk

以下内容按预期工作。

awk -F'^' '{printf "set %s:%s %s\n",$1,$2, $7}' todel.txt | sed 's/$/\\r\\n/' >> tofile.txt

但是当我尝试向输出添加变量(如下所示)时,出现错误:

awk -F'^' '{printf "set %s:%s:%s %s\n",$1,$2,$myvar $7}' todel.txt | sed 's/$/\\r\\n/' >> tofile.txt

最佳答案

$myvar 不会在单引号中扩展。
您可以使用 -v 选项将 shell 变量传递给 awk:

awk -F'^' -v myvar=$myvar '{printf "set %s:%s:%s %s\n",$1,$2,myvar,$7}' todel.txt

关于awk - 在 awk 输出中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9721807/

相关文章:

arrays - 如何使用 for 循环和使用 awk 的数组对文件的行进行重新排序

regex - 替换复杂模式中的字符

bash - 如何打印某些标签之间的数据?

linux - 如何在 shell 脚本中打印格式化为 cat 命令的 echo 语句?

regex - 如何直接在正则表达式模式之后找到最大整数?

bash - awk - 如果列 = null

awk - 在AWK中的一行中合并多个标志之间的行

UNIX 中的 CSV 文件操作

shell - awk 语法错误 : awk: line 29: syntax error at or near :

bash - 在 bash 中保留第一行的前 52000 个字符