在awk命令中动态传递列位置,以将特定列替换为常量值

在awk命令中动态传递列位置,以将特定列替换为常量值,awk,Awk,我不熟悉脚本编写,并且有这样的需求:我需要动态地传递列号,并将所有记录的列值替换为常量字符串 下面是我尝试过的,但看起来像是语法错误。我正在努力将列位置的值传递给第二部分中的变量pos 第二部分我的意思是${$pos}{${$pos}=“XXXX”} Columnpos=3 读书时 做 awk-F“|”-v OFS=“|”-v pos=$Columnpos'${$pos}}{${$pos}=“XXXX”}1'>$Outile 完成 似乎对我有用 (编辑后续说明) 替换正是您已经在做的事情: '{

我不熟悉脚本编写,并且有这样的需求:我需要动态地传递列号,并将所有记录的列值替换为常量字符串

下面是我尝试过的,但看起来像是语法错误。我正在努力将列位置的值传递给第二部分中的变量
pos

第二部分我的意思是
${$pos}{${$pos}=“XXXX”}

Columnpos=3
读书时
做
awk-F“|”-v OFS=“|”-v pos=$Columnpos'${$pos}}{${$pos}=“XXXX”}1'>$Outile
完成
似乎对我有用

(编辑后续说明) 替换正是您已经在做的事情:

'{$col="XXX";print}'
似乎对我有用

(编辑后续说明) 替换正是您已经在做的事情:

'{$col="XXX";print}'

谢谢tomc!,您的命令可以帮助打印该列,这对我也适用。我想换一个。我使用什么命令来执行我需要的替换?你能把这个也包括进去吗?那是我失败的地方谢谢你,这很有效。不熟悉print命令的工作原理!打印打印你告诉它的内容。如果您没有告诉它任何事情,那么它将打印默认变量$0。这是由$1$2$3组成的当前行。。。如果您更改其中一个变量$n,该更改将显示在$0中。希望有帮助。谢谢tomc!,您的命令可以帮助打印该列,这对我也适用。我想换一个。我使用什么命令来执行我需要的替换?你能把这个也包括进去吗?那是我失败的地方谢谢你,这很有效。不熟悉print命令的工作原理!打印打印你告诉它的内容。如果您没有告诉它任何事情,那么它将打印默认变量$0。这是由$1$2$3组成的当前行。。。如果您更改其中一个变量$n,该更改将显示在$0中。希望这有帮助。当学习如何使用新工具/语言时,不要只是猜测语法可能是什么。在这种情况下,请阅读Arnold Robbins的《有效的Awk编程》第四版。感谢Ed的建议和建议。在学习如何使用新工具/语言时,不要只是猜测语法可能是什么。在这种情况下,请阅读Arnold Robbins的《有效的Awk编程》第四版。感谢Ed的建议和建议。
'{$col="XXX";print}'