bash – 如何使用sed / awk替换以逗号分隔的字符串中的第n列/字段?

前端之家收集整理的这篇文章主要介绍了bash – 如何使用sed / awk替换以逗号分隔的字符串中的第n列/字段?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个字符串
"1,2,3,4"

现在我想替换,例如字符串的第3个字段由一些不同的值组成.

"1,NEW,4"

我设法使用以下命令执行此操作:

echo "1,4" | awk -F,-v OFS=,'{$3="NEW"; print }'

现在要替换的列的索引应该作为变量传递.所以在这种情况下

index=3

我怎么能把这个传递给awk?因为这不起作用:

echo "1,'{$index="NEW"; print }'
echo "1,'{$($index)="NEW"; print }'
echo "1,'{\$$index="NEW"; print }'

谢谢你的帮助!

让shell在awk程序中插入索引:
echo "1,'{$'$index'="NEW"; print }'

请注意原始单引号awk程序如何分为三部分,单引号开头'{$’,插值索引值,后跟程序的单引号余数.

原文链接:https://www.f2er.com/bash/386979.html

猜你在找的Bash相关文章