Переформатирование строк
Есть множество файлов примерно такого содержания:
status:
on:
descrition('Code 200')
recommendations('')
x64 = false
x86 = true
Суть задачи сводится к тому, чтобы объединить две последние строки (с последующим удалением) и вставить во вторую строку. Иначе говоря должно получиться следующее:
status:
on: x86 = true, x64 = false
descrition('Code 200')
recommendations('')
Последнее (вставка во вторую строку) трудностей не вызывает, могу поступить так:
sed -i.bak '$s/$/\n <наша строка>/' file
А вот с первым пока стопор.
Ответы (1 шт):
Автор решения: Ainar-G
→ Ссылка
Если допускается использование AWK, то задача «объединить две последние строки и вставить во вторую» решается довольно просто:
BEGIN {
i = 0;
}
{
lines[i] = $0;
i++;
}
END {
n = length(lines);
extra = lines[n - 2] ", " lines[n - 1];
lines[1] = lines[1] " " extra;
delete lines[n - 2]
delete lines[n - 1]
for (i in lines) {
print(lines[i]);
};
}
Результат:
status:
on: x64 = false, x86 = true
descrition('Code 200')
recommendations('')