Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Вставка строк   Eugene Grosbein   16 May 2006 22:42:26 
Архивное /ru.unix/2609350e80d86.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional