Grep строка, которые запускаются и заканчиваются пред определенный символ

Я пытаюсь выбрать строку из файла file.txt который похож на это:

>This is line 1.</li>
>This is line 2.</li>
>This is line 3.</li>
>This is line 4.</li>

Я должен выбрать содержание, которое запускается с > и концы в </li> таким образом, вывод будет This is line 1. This is line 2. и так далее. Я изучил это на форуме, но не сделал найденного решения. Это решение также не сделало работавший.

Я в конечном счете должен выбрать некоторые строки от веб-страницы. Таким образом, сначала я буду curl webpage и затем используйте команду grep для grep, что строка, которая запускается с > и концы в </li>.

Спасибо.!

4
задан 12 August 2017 в 07:46

2 ответа

Это должно быть достаточно:

grep '^>.*</li> 

^ и $ гарантируют, что те части , привязал в запуске и конце строк соответственно.

можно также сделать:

grep -x '>.*</li>' input-file

-x ищет точное совпадение: целая строка должна соответствовать шаблону (который подразумевает ^, и $ перенесен вокруг шаблона).

input-file

^ и $ гарантируют, что те части , привязал в запуске и конце строк соответственно.

можно также сделать:

grep -x '>.*</li>' input-file

-x ищет точное совпадение: целая строка должна соответствовать шаблону (который подразумевает ^, и $ перенесен вокруг шаблона).

6
ответ дан 1 December 2019 в 09:20

Это - входной файл:

$ cat /tmp/tmp.txt
>This is line 1.</li>
invalid line 1
>This is line 2.</li>
>This is line 3.</li>
invalid line 2

>This is line 4.</li>
last invalid line

Используя grep и awk для извлечения строк Вы хотите:

$ cat /tmp/tmp.txt | grep -E '>*</li>' | awk -F\> '{ print $2 }' | awk -F\< '{ print $1 }'
This is line 1.
This is line 2.
This is line 3.
This is line 4.
0
ответ дан 1 December 2019 в 09:20

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

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