Sim, existem várias maneiras de fazer isso. Você pode usar awk,, perlou bashpara executar essas atividades também. Em geral, porém, sedé provavelmente a ferramenta mais adequada para realizar esses tipos de tarefas.
Exemplos
Digamos que eu tenho esses dados de amostra, em um arquivo data.txt:
foo bar 12,300.50
foo bar 2,300.50
abc xyz 1,22,300.50
awk
$ awk '{gsub("foo", "foofoofoo", $0); print}' data.txt
foofoofoo bar 12,300.50
foofoofoo bar 2,300.50
abc xyz 1,22,300.50
Perl
$ perl -pe "s/foo/foofoofoo/g" data.txt
foofoofoo bar 12,300.50
foofoofoo bar 2,300.50
abc xyz 1,22,300.50
Edição embutida
Os exemplos acima também podem modificar diretamente os arquivos. O exemplo Perl é trivial. Basta adicionar a -iopção.
$ perl -pie "s/foo/foofoofoo/g" data.txt
Pois awké um pouco menos direto, mas igualmente eficaz:
$ { rm data.txt && awk '{gsub("foo", "foofoofoo", $0); print}' > data.txt; } < data.txt
Este método cria um sub-shell com chaves '{...} `, onde o arquivo é redirecionado para ele através deste:
$ { ... } < data.txt
Depois que o arquivo é redirecionado para o sub-shell, ele é excluído e, em seguida, awké executado no conteúdo do arquivo que foi lido nos sub-shells STDIN. Esse conteúdo é então processado awke gravado novamente no mesmo nome de arquivo que acabamos de excluir, substituindo-o efetivamente.
$var=~s/a/b/g,gsub(/a/,"b",var),var.gsub(/a/,'b'),var.replace(/a/g,'b'),preg_replace("/a/","b",$var),regsub -all a b $var. Além disso, muitas ferramentas e idiomas também podem substituir a string de texto sem formatação. Portanto, sua pergunta é de alguma forma ampla.