Вывод однострочника Perl [закрыто]

У меня есть однострочный файл perl:

perl -pe 'while (/((\(.*?[^)]\))|(".*?"))/g) {print "$1 ";} print "\n"' testdata

Файл testdata содержит следующее:

"123" (123) 123

Результат:

"123" (123)
"123" (123) 123

Но мне нужно:

"123" (123)

Что могу я сделать?

2
задан 3 May 2015 в 17:08

2 ответа

Гм, Вы могли просто поместить свой запрос (шаблон данных), Вы ищете между этими символами и требуете строго это

'шаблон данных'

независимо от того, что этот шаблон данных содержал бы... даже подстановочные знаки, тогда позволяются также...

это посмотрело бы здесь как часть Вашего намеченного использования Вашей команды как

'"123" (123)'

, или это будет похоже

\'"123" (123) \'

после Вашего комментария, который я добавил следующим образом (не делайте downvote меня - вместо этого остаются конструктивными с Вашим мнением, но не используют Ваши ползунки как в cakepoof), так добавьте или свяжите свою perl-строку с каналом к grep-e следующим образом:

жемчуг-pe, 'в то время как (/(((. ? [^)])) | (". ?"))/g) {печатают "1$";} печатают "\n"' данные тестирования | grep-e '"123" (123)'

или

жемчуг-pe 'в то время как (/(((. ? [^)])) | (". ?"))/g) {печатают "1$";} печатают "\n"' данные тестирования | grep-e \'"123" (123) \'

-1
ответ дан 2 December 2019 в 05:06

Как прокомментированный muru:

-p печать $_. Если Вы собираетесь сделать свою собственную печать, использовать -n.

perl -ne 'while (/((\(.*?[^)]\))|(".*?"))/g) {print "$1 ";} print "\n"' testdata
2
ответ дан 2 December 2019 в 05:06

Другие вопросы по тегам:

Похожие вопросы: