我是脚本新手,并且需要动态传递列号并且只用所有记录的常量字符串替换该列值。
以下是我尝试的内容,但看起来像语法错误。我很难在第二部分中将Column位置的值传递给变量pos
。
第二部分我的意思是${$pos}} { ${$pos}="XXXX"}
Columnpos=3
while read
do
awk -F"|" -v OFS="|" -v pos=$Columnpos '${$pos}} { ${$pos}="XXXX"} 1' > $Outile
done <"$InpFile"
尝试了其他选项,例如$[$pos]} { $[$pos]="XXXX"}
,但没有运气
我搜索过相同的主题,可能会发现一些相关的内容,但没有找到符合我要求的内容。
答案 0 :(得分:0)
var=2
awk -v "col=${var}" '{print $col}' random.file
似乎对我有用。
(编辑后续备注) 替换正是你已经做过的事情:
'{$col="XXX";print}'