Use uma expressão de endereço para selecionar as linhas que você deseja editar e, em seguida, use uma substituição regular para realmente fazer a substituição. Uma coisa divertida sobre o sed é que, antes do comando "s", você pode especificar um número de linha ou uma expressão regular para escolher as linhas que lhe interessam (o endereço também pode ser um início e um fim separados por vírgulas que especificam todas as linhas contido dentro do "intervalo de endereços", mas deixando a segunda parte fora seleciona linhas simples).
Em sua expressão de endereço, procure "não uma vírgula, seguida do que você deseja".
Na substituição, lembre-se das coisas antes do seu padrão, depois coloque as partes "antes" antes da sua string substituta. Você se lembra da parte "antes" porque quer que o material anterior inclua apenas uma vírgula, nem mais nem menos. Aqui está mostrando que combina com o primeiro campo e impacta apenas o segundo; Estou substituindo "la" por "moo" na segunda coluna de linhas que correspondem a "atter" na primeira coluna.
$ echo -e "pattern,blah,aaa\npattern,bleh,stuff" | sed '/[^,]*atter/s/\(^[^,]*,[^,]*\)la/moo/g'
pattern,bmooh,aaa
pattern,bleh,stuff
Isso sozinho não funcionará corretamente com vírgulas com escape nos campos, portanto, esperamos que seu arquivo CSV seja simples. :)