LINUX.ORG.RU

История изменений

Исправление papin-aziat, (текущая версия) :

Идея запихнуть весь файл в pattern space и обработать выглядит заманчиво, но вот оказалось, что работает плохо.

Похоже на то, что я периодически слышу, что в баше нехорошо просто положить всё в переменную и работать с ней как с файлом, хотя я пока не сталкивался почему…

Глянул в книжку, там авторы (история с Ленни), чтобы заменить все вхождения, которые могут быть и разорваны между строками, используют лейблы, N, D и P: сначала ищут и заменяют в строке целый паттерн, потом на этой же стоке ищут часть. Если часть найдена, то N (добавить) и, если замена успешна, то P (печать до \n) и D (удаление до \n), иначе в начало скрипта.

Получается, что pattern space будет содержать максимально только столько строк, на сколько разорван один конкретный паттерн.

Исходная версия papin-aziat, :

Идея запихнуть весь файл в hold space и обработать выглядит заманчиво, но вот оказалось, что работает плохо.

Похоже на то, что я периодически слышу, что в баше нехорошо просто положить всё в переменную и работать с ней как с файлом, хотя я пока не сталкивался почему…

Глянул в книжку, там авторы (история с Ленни), чтобы заменить все вхождения, которые могут быть и разорваны между строками, используют лейблы, N, D и P: сначала ищут и заменяют в строке целый паттерн, потом на этой же стоке ищут часть. Если часть найдена, то N (добавить) и, если замена успешна, то P (печать до \n) и D (удаление до \n), иначе в начало скрипта.

Получается, что hold space будет содержать максимально только столько строк, на сколько разорван один конкретный паттерн.