pesquisa de arquivos de texto aaaa / mm / dd e substitua por aaaa-mm-dd

0

Eu tenho um arquivo com muitas tags no formato yyyy/mm/dd , como na linha abaixo, e quero substituir o / por - para dar yyyy-mm-dd em todas as instâncias do arquivo. por exemplo,

deste: <tag k='start_date' v='2011/01/01' />
para isso: <tag k='start_date' v='2011-01-01' />

Estou no Mac 10.11.6

    
por Nev 20.04.2018 / 06:41

2 respostas

2

Você pode usar sed para isso

$ sed -E 's|([0-9]{4})/([0-9]{2})/([0-9]{2})|--|g' file

Dê uma chance.

Para editar o arquivo no lugar, com o macOS ou o FreeBSD, adicione uma opção -i '' . A maioria das outras implementações de sed precisa de -i sozinha para isso ( -i.back funcionaria para ambos e salvaria o original com uma extensão .back ). Nos sistemas em que sed não oferece suporte à edição no local, você pode usar perl -pi -e no lugar de sed -E (o que inspirou esses sed -i ).

    
por 20.04.2018 / 06:48
-1

Desculpe, não, não funcionou. O texto não foi alterado

Mas isso funcionou bem ...

perl -pi -e 's|([0-9]{4})/([0-9]{2})/([0-9]{2})|--|g' file
    
por 20.04.2018 / 07:23