|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Eugene Grosbein 2:5006/1 16 May 2006 22:42:26 To : Dmytro Rud Subject : Re: Вставка строк --------------------------------------------------------------------------------
16 май 2006, вторник, в 17:25 KRAST, Dmytro Rud написал(а):
>> Hужно вставить строку text перед 1-й, 5-й, 9-й и так далее строкой файла,
>> то есть через четыре строчки. Пробую так
>>
>> #!/bin/sh
>> nl='\
>>
>> '
>> sed "{ N; N; N; }; s/^/text$nl/"
>>
>> Если в исходном тексте количество строк кратно четырем,
>> работает правильно. Если нет - последние одна, две или три строки
>> файла (количество равно остатку от деления числа строк на 4)
>> sed съедает, в вывод они не попадают, а надо, чтобы попали.
>>
>> Как исправить?
DR> Перед запуском sed дописать в файл три строки особого вида (чтобы они
DR> отличались от нормального содержания файла), а после sed'а удалить их
DR> (если sed это не сделает за тебя ;-).
Hо тогда не получится работать на манер фильтра, придется
где-то сохранять промежуточный вариант. Простое решение
получилось переходом на awk:
awk '{ if((NR % 4) == 1) { print "text"}; print; }
Eugene
--
И знатную леди от Джуди О'Греди
Hе сможет никто отличить.
--- slrn/0.9.8.0 (FreeBSD)
* Origin: Svyaz Service JSC (2:5006/1@fidonet)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/2609350e80d86.html, оценка из 5, голосов 10
|