$ cat aaaa
foo "bar" base "ere" fff
"fff"ggggg"rr"
$ grep -o '"[^"]*"' aaaa
"bar"
"ere"
"fff"
"rr"
Existe alguma maneira de grep
ou obter de qualquer outra forma todas as ocorrências de texto dentro de cada par de aspas duplas em um arquivo? Já vi respostas como esta: link , mas elas não funcionam em casos em que cada linha pode conter um número arbitrário de strings entre aspas.
Então, para uma entrada como esta:
Here was some "text over here", and then there was "text over there".
Eu gostaria que a saída fosse:
"text over here"
"text over there"
Não precisa incluir as citações.
$ cat aaaa
foo "bar" base "ere" fff
"fff"ggggg"rr"
$ grep -o '"[^"]*"' aaaa
"bar"
"ere"
"fff"
"rr"
Tente:
grep -o '"[^"]*"' /path/to/file
Observação: [^"]*
é a versão não-voraz do curinga ( .*
), portanto você pode corresponder a mais de uma ocorrência por linha.
Tags bash grep unix text-manipulation