vak: (Default)
[personal profile] vak
Полезная хитрость: как редактором sed обработать концы строк.
sed ':a;N;$!ba;s/\n/ /g' file
:a создать метку 'a'
N добавить следующую строку к текущему буферу
$! если не последняя строка, ba перейти на метку 'a'
s заменить, /\n/ конец строки, / / на пробел, /g глобально (все вхождения)

Date: 2019-07-03 03:14 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
Мне как бы не лень скрипт на скале навалять.

Date: 2019-07-03 04:50 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
Да конечно. Просто мои шпоры по седу давно где-то потерялись. А на скале я даже себе штаны могу, наверно.

Date: 2019-07-03 04:49 (UTC)
ext_792584: (Default)
From: [identity profile] http://poxod.com/lev/
А лаконичное
paste -d ' ' -s file

чем плохо?

P.S. Неожиданно обнаружил, что пример с sed-ом не работает в tcsh (так вот он по-дурацки реагирует на $! - даже несмотря на одиночные кавычки). Ну на то он и tcsh, чтобы considered harmful ;-)

Date: 2019-07-03 05:57 (UTC)
ext_792584: (Default)
From: [identity profile] http://poxod.com/lev/
Что есть, то есть - петля с меткой красивая и удобная. Я, собственно, sed очень даже люблю. Правда, в активной памяти сейчас в основном только 's' и 'd', да адреса - а за всем остальным уже в мануал лезть приходится.

Date: 2019-07-03 14:13 (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
В нетривиальном случае это отлаживать дольше чем написать быстро скрипт на чём-то более вменяемом.

Date: 2019-07-03 18:07 (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
Перед copy надо ещё найти.

Date: 2019-07-04 04:58 (UTC)
vanja_y: (Default)
From: [personal profile] vanja_y
В gnu-шном sed-е есть опция -z, которая делит файл на строки не по \n, а по NULL. На обычных файлах можно делать что-нибудь на манер

sed -z 's/\n/ /g'