Пропустите строки файла, пока соответствие не будет найдено, затем произведет остальных

В качестве ошибки говорится следующее:

raise ValueError("Ran into a %s where it wasn't expected" % token.gettokentype())

Измените его, как показано ниже, и проверьте:

raise ValueError('Ran into a %s where it wasn't expected' % (token.gettokentype()))
12
задан 13 October 2008 в 09:55
поделиться

3 ответа

Используя sed:

sed -ne '/LastHeaderLine/,$p' <inputfile

будет соответствовать всему от соответствия regex в конец файла. 'p' печатает строки то соответствие.

Править:

Вообще-то, если задуматься Вы не хотите печатать соответствие строки LastHeaderLine. Это трудно сделать с sed. В жемчуге Вы могли сделать следующее:

perl -ne 'if ($flag) {print;} if (/LastHeaderFile/) {$flag=1;}' <inputfile

Это распечатало бы только строки строго после соответствия regex.

7
ответ дан 2 December 2019 в 03:25
поделиться

Подобный ответу Avi, но без включения строки с "LastHeaderLine".

sed -e '1,/LastHeaderLine/d'
25
ответ дан 2 December 2019 в 03:25
поделиться

Почему бы не попробовать awk за это? Это было бы похоже на это:

awk 'NR == 1, /LastHeaderLine/ { next } { print }' myinputfile > myoutputfile

где НОМЕР == 1 верен для первой строки,/LastHeaderLine/соответствует Вашей последней строке заголовка. Оператор запятой позволяет следующей функции {затем} стрелять для всех предложений в диапазон двух регулярных выражений. В этом случае это пропустит к следующей строке входа без дальнейшей операции. Для всех других входных строк это распечатает строки к стандартному выводу, который можно перенаправить использование>.

12
ответ дан 2 December 2019 в 03:25
поделиться
Другие вопросы по тегам:

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