Как я могу соединить некоторые определенные строки вместе в текстовом файле ??
Например,
INT(6,4,54,4,1,-1,1,1,0,1,1)=
+INT(5,4,23,4,1,1,1,1,0,1,-1)
*(1)
+INT(5,4,23,4,0,1,1,1,0,1,0)
*(-M^2+a^2);
id INT(4,54,4,1,0,1,1,-1,1,1)=
+INT(4,23,4,1,1,1,1,-1,1,0)
*(1);
Я хотел бы поместить строки, начинающиеся с * на предыдущую строку, то есть
INT(6,4,54,4,1,-1,1,1,0,1,1)=
+INT(5,4,23,4,1,1,1,1,0,1,-1)*(1)
+INT(5,4,23,4,0,1,1,1,0,1,0)*(-M^2+a^2);
id INT(4,54,4,1,0,1,1,-1,1,1)=
+INT(4,23,4,1,1,1,1,-1,1,0)*(1);
вот так.
Я набрал
sed -i 'N;s/\n\*/\*/g' file_name
, но это не работает.
Заранее спасибо!
Вот он:
sed -E ':a ; $!N ; s/\n\*/\*/ ; ta ; P ; D' file_name
Или переносимый (не-GNU) вариант:
sed -e :a -e '$!N;s/\n\*/\*/;ta' -e 'P;D' file_name
-i.bak
для внесения изменений вместо файла. и создайте файл резервной копии. Источник: gnu.org - sed - manual - Соедините строки, начинающиеся с пробела .