преобразовать несколько строк в одну строку с именем grep

Для решения проблемы нужно сделать:

  1. rsyncлюбую папку, которую вы хотите сохранить на жестком диске обратно на жесткий диск вашего компьютера.
  2. Затем отформатируйте его. Для этого вы можете использовать gpartedграфическую программу, если у вас установлена ​​XOrgсистема GNU/Linux.
  3. Верните папки, которые вы сохранили.

Я знаю, что это немного хакерски, но для настольного использования в моем случае это сработало.

-2
23.09.2020, 09:42
2 ответа

это работа для awk, а не для grep

awk 'NF==1 { printf " %s", $1 } 
     NF>1 { printf "%s%s",l,$0; l="\n" ;} 
     END { printf "%s",l ;}'

Основная хитрость заключается в использовании printf, чтобы избежать вставки новой строки.

0
18.03.2021, 23:03

Вы можете использовать вариант хорошо -известного sed oneliner для условного соединения строк:

$ sed -e :a -e '$!N;s/\n[[:space:]]\{1,\}/ /;ta' -e 'P;D' file
item : name_1  213321654 32549846546
item : name_2  8563161631
item : name_3 96315242161 73216510631 51654316416

См., например, Sed One -Объяснение вкладышей, часть I :Интервал между файлами, нумерация, преобразование и замена текста

0
18.03.2021, 23:03

Теги

Похожие вопросы