sed 's/[^.]*$/txt/'
Ou apenas para linhas que contenham pelo menos um .
(não altere myfile
para txt
):
sed 's/\.[^.]*$/.txt/'
Para evitar também a substituição de .bashrc
por .txt
:
sed 's/\(..*\.\).*/txt/'
(dessa vez, dependemos da ganância de .*
para substituir a parte depois do último .
).
Para evitar também a substituição de foo.d/myfile
por foo.txt
:
sed 's|\([^/]\.\)[^./]*$|txt|'
Para adicionar também uma extensão .txt
aos arquivos que não têm nenhuma extensão (incluindo a alteração de .bashrc
a .bashrc.txt
, mas não a tocar linhas vazias nem as linhas que terminam em /
):
sed 's|\([^/]\)\.[^./]*$||;s|[^/]$|&.txt|'