LINUX.ORG.RU

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

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

Кстати, как оно себя поведёт на ОЧЕНЬ больших файлах? Оно умеет жрать из stdin/pipe?

Пока хватает памяти, оно будет работать. stdin/pipe оно умеет также как и sed, об этом сказано в самом начале по поводу формата вызова, где [files...]* означает не обязательно и по поводу опции -i.

Из спортивного интереса попробуй изобрести то же самое на POSIX Shell (без расширений).

Обычный sh не умеет сам regex-ы и потому такое пожелание не очень. Я уже тут публиковал решение, искать лень, как в таких случаях делают: ищут свободный символ, grep-ом в цикле, потом меняют \n на него и далее уже sed/awk одной программой, а не построчно обрабатывают вложенные блоки, причём awk даже удобнее, так как он не только Тьюринг-полный как sed, но ещё и удобный — умеет считать (что надо для поиска всяких открыто-закрытых «скобочек»).

Исходная версия vodz, :

Кстати, как оно себя поведёт на ОЧЕНЬ больших файлах? Оно умеет жрать из stdin/pipe?

Пока хватает памяти, оно будет работать. stdin/pipe оно умеет также как и sed, об этом сказано в самом начале по поводу опции -i.

Из спортивного интереса попробуй изобрести то же самое на POSIX Shell (без расширений).

Обычный sh не умеет сам regex-ы и потому такое пожелание не очень. Я уже тут публиковал решение, искать лень, как в таких случаях делают: ищут свободный символ, grep-ом в цикле, потом меняют \n на него и далее уже sed/awk одной программой, а не построчно обрабатывают вложенные блоки, причём awk даже удобнее, так как он не только Тьюринг-полный как sed, но ещё и удобный — умеет считать (что надо для поиска всяких открыто-закрытых «скобочек»).