1

Я выбираю конкретную строку и хочу удалить ее со всем текстом и строками после нее.

Код, который я использую, чтобы выбрать строку, содержащую нужную строку:

^.*(string).*$

Также я еще один, чтобы удалить его и текст перед ним для другой строки.

Было бы здорово, если бы я мог заменить весь текст и строки одной пользовательской строкой.

Я пытался добавить. * И \r \n, но ничего не работает ..

2 ответа2

1

Я нашел ответ. Это было просто, как ад.

Эта простая строка сделала то, что я хотел, может быть, она поможет кому-то еще.

(\string).*$

Он будет выбирать все после строки, включая строку

0

Если я понимаю ваш вопрос, этот сценарий отвечает на первую проблему. Для решения второй проблемы используйте почти один и тот же скрипт и запустите diff для двух файлов.

#!/bin/bash -
#
gawk '
# /pattern/ { action } 
BEGIN { flag = 0 }
/^.*foo.*$/ { flag++ }
{
if (flag == 0)
    print $0 
}
' file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .