Você pode usar
sed -e 's|<tag1>false</tag1>|<tag1>true</tag1>|g' -i file
embora eu recomende fazer a edição para uma cópia do arquivo,
sed -e 's|<tag1>false</tag1>|<tag1>true</tag1>|g' file > newfile
e usando less
para verificar se o novo conteúdo é aceitável; ou seja,
less newfile
Editado: observe o modificador g
no final do padrão. É necessário, se puder haver mais de uma correspondência em uma linha. Quando g
está presente, significa que todas as correspondências em uma linha são substituídas. Além disso, em vez de tags completas, você poderia considerar apenas
sed -e 's|>false<|>true<|g' file > newfile
ou talvez
sed -e 's|>[Ff]alse<|>true<|g' file > newfile
que altera >false<
e >False<
para >true<
.
Você pode usar diff
para comparar os dois arquivos, depois de usar um dos comandos acima. Uma opção é
diff --side-by-side file newfile | less
mas realmente não funciona se as linhas forem muito longas. O formato "diff unificado" é comumente usado,
diff -u file newfile | less
onde as linhas que começam com -
são de file
, as linhas que começam com +
de newfile
e as linhas que começam com um espaço são comuns a ambas.