Awk - replace one character only in a certain column
$ awk 'BEGIN{FS=OFS=";"} {gsub(/\./, ",", $2)} 1' ip.txt
2018.01.02;1,5;comment 1
2018.01.04;2,75;comment 2
2018.01.07;5,25;comment 4
2018.01.09;1,25;comment 7
BEGIN{}
this block of code will be executed before processing any input lineFS=OFS=";"
set input and output field separator as;
gsub(/\./, ",", $2)
for each input line, replace all the.
in 2nd field with,
1
is an awk idiom to print contents of$0
(which contains the input record)
sed 's/\./,/3' file
replace the third occurence of the dot
Done by below method using awk
Command: awk -F ";" '{gsub(/\./,",",$2);print $1";"$2";"$3}' filename
output
2018.01.02;1,5;comment 1
2018.01.04;2,75;comment 2
2018.01.07;5,25;comment 4
2018.01.09;1,25;comment 7