Как заменить n-й столбец / поле в строке через запятую, используя sed / awk?
предположим, у меня есть строка
"1,2,3,4"
Теперь я хочу заменить, например, 3-е поле строки с некоторым другим значением.
"1,2,NEW,4"
Мне удалось сделать это с помощью следующей команды:
echo "1,2,3,4" | awk -F, -v OFS=, '{$3="NEW"; print }'
Теперь индекс для заменяемого столбца должен быть передан как переменная. Так что в этом случае
index=3
Как я могу передать это в awk? Потому что это не сработает:
echo "1,2,3,4" | awk -F, -v OFS=, '{$index="NEW"; print }'
echo "1,2,3,4" | awk -F, -v OFS=, '{$($index)="NEW"; print }'
echo "1,2,3,4" | awk -F, -v OFS=, '{\$index="NEW"; print }'
Спасибо за вашу помощь!