Настоящий реверс в регулярном выражении - PullRequest
1 голос
/ 14 марта 2012

У меня есть текстовый файл, в котором перечислены возможные проблемы. Он всегда начинается с URL, а затем заканчивается Result и любым кодом ошибки, если таковой имеется. Я хочу пройти через текстовый файл и получить весь текстовый блок Error: 404 Not Found и вывести их в отдельный текстовый файл. Я нашел это:

awk '/ URL /, / 404 Not Found /' text.txt> only404.txt

Проблема в том, что он находит URL, а затем прекращает поиск, пока не доберется до 404 Not Found, который в приведенном ниже случае также будет включать в себя Valid: 200 OK ... Что я действительно хотел бы сделать, так это поиск 404 Not Found тогда перевернуть себя, пока не дойдет до URL. Тогда это будет работать. Есть идеи?

    URL //fonts.googleapis.com/css?family=Lato:300,400,400italic,700'
    Parent URL http://example.com, line 12, col 1
    Real URL   http://fonts.googleapis.com/css?family=Lato:300,400,400italic,700
    Check time 1.863 seconds
    Warning    Access denied by robots.txt, skipping content checks.
    Result     Valid: 200 OK

    URL   `/image.png'
    Parent URL http://example.com/styles.css, line 1380, col 17
    Real URL   http://example.com/image.png
    Check time 0.443 seconds
    Size       1KB
    Result     Error: 404 Not Found

Ответы [ 2 ]

3 голосов
/ 14 марта 2012

это может работать для вас:

 awk -v RS="" '/404 Not Found/' yourFile

test: это то, что вы хотите?

kent$  cat t
    URL //fonts.googleapis.com/css?family=Lato:300,400,400italic,700'
    Parent URL http://example.com, line 12, col 1
    Real URL   http://fonts.googleapis.com/css?family=Lato:300,400,400italic,700
    Check time 1.863 seconds
    Warning    Access denied by robots.txt, skipping content checks.
    Result     Valid: 200 OK

    URL   `/image.png'
    Parent URL http://example.com/styles.css, line 1380, col 17
    Real URL   http://example.com/image.png
    Check time 0.443 seconds
    Size       1KB
    Result     Error: 404 Not Found

kent$  awk -v RS="" '/404 Not Found/' t
    URL   `/image.png'
    Parent URL http://example.com/styles.css, line 1380, col 17
    Real URL   http://example.com/image.png
    Check time 0.443 seconds
    Size       1KB
    Result     Error: 404 Not Found
1 голос
/ 14 марта 2012

Это может работать для вас:

sed '/^\s*URL/,/^\s*Result/{/^\s*URL/{h;d};H;/Error: 404/{g;b}};d' file
    URL   `/image.png'
    Parent URL http://example.com/styles.css, line 1380, col 17
    Real URL   http://example.com/image.png
    Check time 0.443 seconds
    Size       1KB
    Result     Error: 404 Not Found
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...