Используйте sed для замены новых строк в диапазоне строк

Ошибка отказа в соединении указывает на то, что IP-адрес, на который вы пытаетесь подключиться по ssh, отказывается от соединения. В случае неправильного пароля выдаст ошибку аутентификации. Вы можете добраться до запроса пароля?

0
27.09.2020, 05:41
4 ответа

Для GNUвы можете использовать следующиеsed

sed -n '/class="title"/{N;s/\n/ /;N;s/\n/ /p;}' file.txt

Nдобавляет следующую строку в пространство шаблонов

2
18.03.2021, 23:02

Если ваш файл состоит только из этих 3 «повторяющихся» строк, вы можете использовать следующее:

$ sed 'N;N;s/\n/ /g' file

Получается:

<div><p class="title">software v1.0.1.0 download</p></div>
<div><p class="title">software v1.0.2.0 download</p></div>
<div><p class="title">software v1.0.3.0 download</p></div>

Используйте следующий скрипт sed, если ваш файл содержит другие строки:

$ sed '/class="title"/ { N;N;s/\n/ /g }' file
2
18.03.2021, 23:02
Done by below 2 methods awk and Python


sed command

sed -e "N;s/\n/ /g" -e "N;s/\n/ /g" filename




Python

#!/usr/bin/python
f=[]
k=open('filename','r')
for  i in k:
    f.append(i.strip())

for n in range(0,len(f),3):
    print f[n:n+3]

выход

<div><p class="title">software v1.0.1.0 download</p></div>
<div><p class="title">software v1.0.2.0 download</p></div>
<div><p class="title">software v1.0.3.0 download</p></div>
1
18.03.2021, 23:02

Ваш вопрос можно интерпретировать как сворачивание строк и печать новой строки только при закрытии <div>. Конечно, это относится к вашему простому биту html, а не к любому html. Здесь используется awk:

awk '{ORS = (/\/div>$/? "\n": " ")} 1' file

Установите разделитель выходных записей ORS ()на новую строку, если /div>соответствует концу строки, или в противном случае установите ORS на пробел. 1означает {print}каждую строку.

<div><p class="title">software v1.0.1.0 download</p></div>
<div><p class="title">software v1.0.2.0 download</p></div>
<div><p class="title">software v1.0.3.0 download</p></div>
1
18.03.2021, 23:02

Теги

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