Vários fragmentos de código existem em um arquivo semelhante ao seguinte:
<blah>Spread the peanut butter <ramout assot="f0123_fun10" bapel="2 or 6"/> on good looking bread <ramout assot="f0123_fun10" bapel="3 or 5"/> that does not have peanut butter <ramout assot="f0123_fun10" bapel="2 or 6"/> already on the bread this that and the other <ramout assot="f0123_fun10" bapel="4"/> with something else.</blah>
Estou tentando encontrar instâncias duplicadas da tag de ramout em um único arquivo.
Se o seguinte existir:
<ramout assot="f0123_fun10" bapel="2 or 6"/>
Eu quero saber se ele é repetido novamente dentro das tags blah de abertura e fechamento.
Eu tentei várias coisas, mas uma das últimas foi a seguinte:
grep -Eoi '<blah>.*([[:space:]]<ramout assot).*.*</blah>' *.xml | less
que não retornou nada.
Eu também tentei:
grep -Eio '<blah>.*([[:space:]]<ramout assot="[a-z][0-9]{5}_fig[0-9]+" bapel="[0-9]+.*)' *.xml
que não inclui a referência anterior, mas também não mostra todos os resultados. Parece que isso está mostrando apenas os resultados que são uma linha única (não se estende por mais de uma linha).
Devo usar sed se quiser pesquisar algo que pode ou não estar em uma linha?
O awk é um candidato viável? Eu vi e tentei: awk '/ Start padrão /, / End padrão /' filename que retornou mais resultados, mas ainda não estou obtendo todos os resultados.
Qualquer ajuda para encontrar a) todos os resultados em todo o arquivo e separadamente b) todos os resultados que são duplicados dentro de tags blah serão apreciados.
Os resultados esperados seriam semelhantes a:
resultados da pesquisa a) mostrando todos os resultados da ramout:
<ramout assot="f0123_fun10" bapel="2 or 6"/>
<ramout assot="f0123_fun10" bapel="3 or 5"/>
<ramout assot="f0123_fun10" bapel="2 or 6"/>
<ramout assot="f0123_fun10" bapel="4"/>
resultados da pesquisa b) mostrando resultados duplicados:
<ramout assot="f0123_fun10" bapel="2 or 6"/>