Вы всегда можете добавить новую запись с помощью синтаксиса x. newentry
и перенумеровать все последующие записи с помощью чего-то вроде:
awk -F . -v OFS=. '{if (NF) $1 = ++n; else n = 0; print}'
-F .
: устанавливает разделитель полей на .
1-v OFS=.
: то же самое для разделителя полей output (-F .
- сокращение от -v FS=.
). {...}
: нет условия, поэтому код внутри {...}
выполняется для каждой строкиif (NF)
, если количество полей больше 0. С FS
является .
, это означает, что если текущая строка содержит хотя бы одно
. Мы могли бы также сделать if (length)
для проверки непустых строк. $1 = ++n
: установить первое поле в инкрементированное n
(сначала 0, потом 1, потом 2...). else n = 0
: иначе (когда NF == 0) сбросить n в 0. print
: вывести (возможно, измененную) строку. 1Синтаксис такой: -F <расширенное-регулярное-выражение>
, но когда <расширенное-регулярное-выражение>
- это один символ, то он воспринимается не как регулярное выражение (где .
означает любой символ), а как этот символ.