Sed comando para excluir um intervalo inclusivo de caracteres

2

Estou trabalhando com um arquivo xml parecido com este

<w:ins w:id="0" w:author="Nick" w:date="2016-11-23T00:16:00Z"><w:r w:rsidR="009C39E2"><w:rPr><w:ins w:id="1" w:author="Nick" w:date="2016-11-23T00:16:00Z">

Estou tentando excluir tudo o que envolve w: date para que o produto seja semelhante.

<w:ins w:id="0" w:author="Nick"><w:r w:rsidR="009C39E2"><w:rPr><w:ins w:id="1" w:author="Nick">

Atualmente, estou tentando este comando sed incorreto. sed 's/w:date=".*"//g' Eu sei que isso está errado, mas não sei como resolvo isso.

EDITAR:

cat testing.txt  
<w:ins w:id="0" w:author="Nick" w:date="2016-11-23T00:16:00Z"><w:r w:rsidR="009C39E2"><w:rPr><w:ins w:id="1" w:author="Nick" w:date="2016-11-23T00:16:00Z">

sed 's/ w:date="[^\]*"//g' testing.txt
<w:ins w:id="0" w:author="Nick">
    
por Nicholas Hayden 23.11.2016 / 20:30

1 resposta

1

Sua expressão é muito gananciosa. Você quer corresponder o atributo, uma citação, alguns caracteres não citados e a citação final:

sed 's/ w:date="[^"]*"//g' file
# ..............^^^^
<w:ins w:id="0" w:author="Nick"><w:r w:rsidR="009C39E2"><w:rPr><w:ins w:id="1" w:author="Nick">
    
por 27.11.2016 / 14:45