Вы можете сделать это довольно просто, используя sed
с формой 0,addr2
(см. man sed
в разделе "Адреса" ) с общей заменой, например,
$ sed '0,/^/s/^/4\n\n/' file
4
A 5.3 3.2 1.2
A 2.1 3.4 6.7
A 3.4 2.1 5.6
A 0.4 2.2 4.2
.sed
выражение просто находит первое вхождение начала строки 0,/^/
, а затем заменяет начало строки на 4\n\n
, используя s/^/4\n\n/
Добавьте параметр -i
для редактирования-на месте (или -i.bak
, чтобы создать заднюю часть оригинала (например, file.bak
) при редактировании на месте.
Если вас интересует настройка количества строк, вы можете просто получить строкис wc -l
с использованием подстановки команд , например
$ sed "0,/^/s/^/$(wc -l <file2)\n\n/" file2
8
A 5.3 3.2 1.2
A 2.1 3.4 6.7
A 3.4 2.1 5.6
A 0.4 2.2 4.2
A 5.3 3.2 1.2
A 2.1 3.4 6.7
A 3.4 2.1 5.6
A 0.4 2.2 4.2
( примечание: использование двойных кавычек вместо одинарных кавычек для расширения командызамена) * +1028 *