1

С помощью grep я получаю код возврата / состояние выхода, если результат не найден.

Как я могу сделать то же самое с Perl?

По сути, я хотел бы изменить следующее, чтобы оно выходило со статусом 1, если совпадений не найдено.

echo foo | perl -nle'print if m{bar}'

2 ответа2

1

Быстро и грязно:

echo foo | perl -nlE'print if $t ||= m{bar} }{ exit 1 if !$t'

Объяснение:

"Эскимосский поцелуй" }{ while цикла (которая подразумевается -n В if утверждения а varibable $t является 1 , как только первый матч происходит.

0

Если бы я решил проблему «быстро и грязно», я бы просто попробовал что-то вроде этого

эхо фу | perl -nle 'print if m {bar} или print 1'

Надеюсь, это было полезно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .