Regex, как я могу получить только первую строку вывода? - PullRequest
1 голос
/ 06 ноября 2010

В моем выводе содержится более 1 строки, поэтому я пытаюсь сопоставить разрыв строки в конце строки, а затем получаю только 1 максимальное вхождение. Я пытался что-то вроде этого: ^$output*\n$\{,1\}, но на самом деле это не сработало.

Ответы [ 2 ]

3 голосов
/ 06 ноября 2010

Вы можете получить первую строку вывода, используя утилиту Unix head

head -1

2 голосов
/ 06 ноября 2010

На каком языке? В sed: sed -e 's/:/!/g' -e '1q' /etc/passwd Вторая команда означает «выйти из строки 1».

В Perl вы можете использовать флаг m для обработки одной длинной многострочной строки как нескольких строк, и тогда $ будет соответствовать первой новой строке.

В awk вы можете сделать номер строки частью условия: awk '/.../ && NR == 1 { print }' или выйти после первой строки: awk '/.../ { print } { exit }'

С помощью grep вы можете ограничить файл заголовком: head -1 file | grep pattern или ограничиться первой соответствующей строкой с grep -c 1 pattern file...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...