Usando sed , você pode informar especificamente sed quais ocorrências de padrão você deseja substituir, portanto:
sed 's/,/|/4' infile
Ou com solução diferente seria:
sed -r 's/^([^,]*,)([^,]*,)([^,]*,)([^,]*),(.*)/|/' infile
Eu tenho um arquivo csv separado por vírgula como uma amostra como:
1,92345,92345,Dear user, this is your amount , 2016-10-10
2,92345,92345,Dear user, this is your amount , 2016-10-09
Eu preciso substituir 4 th comma , somente após o Dear user com um pipeline | .
Tags text-processing awk sed csv-simple