Como muru comentou:
-p
imprime$_
. Se você for fazer sua própria impressão, use-n
.
perl -ne 'while (/((\(.*?[^)]\))|(".*?"))/g) {print " ";} print "\n"' testdata
Eu tenho um perl one-liner:
perl -pe 'while (/((\(.*?[^)]\))|(".*?"))/g) {print " ";} print "\n"' testdata
O arquivo testdata
contém o seguinte:
"123" (123) 123
Ouput é:
"123" (123)
"123" (123) 123
Mas eu preciso:
"123" (123)
O que posso fazer?
Hm, você poderia simplesmente colocar sua consulta (o padrão de dados) que você está procurando entre esses símbolos e exigir estritamente isso por
'padrão de dados'
qualquer que seja esse padrão de dados ... até mesmo os curingas são então permitido também ...
isso ficaria aqui como parte de seu uso pretendido de seu comando como
'"123" (123)'
ou seria parecido com
\ '"123" (123) \'
após o seu comentário eu adicionei o seguinte (por favor não me downvote - em vez permanecer construtivo com a sua opinião, mas não use seus polegares como no cakepoof) para adicionar ou vincular sua linha perl com um pipe grep -e da seguinte forma:
perl -pe 'while (/(((.?[^)]))|(".?"))/g) {print "$ 1";} print "\ n "'testdata | grep -e '"123" (123)'
ou
perl -pe 'while (/(((.?[^)]))|(".?"))/g) {print "$ 1";} print "\ n "'testdata | grep -e \ '"123" (123) \'