sed/awk перенос строк содержимого файла.

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
fletch
Сообщения: 24
ОС: Arch Linux

sed/awk перенос строк содержимого файла.

Сообщение fletch »

Доброго времени суток!
Имеется файл с содержимым вида
a
b
с
т.е. каждый элемент находится в новой строке.
Надо из него сформировать новый файл с содержимым вида a b с, т.е. все элементы должны быть в одной строке и разделены пробелом. Как это осуществить?
UPD. Рекомендовали xargs, но он натыкается на одинарную кавычку в строке и вываливается с ошибкой xargs: unmatched одинарная quote; by default quotes are special to xargs unless you use the -0 option. Строка, на которой он спотыкается: Dnipropetrovs'k region
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: sed/awk перенос строк содержимого файла.

Сообщение diesel »

Код: Выделить всё

[diesel@eifel tmp]$ cat file
a
b
с
[diesel@eifel tmp]$ echo $(cat file)
a b с
[diesel@eifel tmp]$ echo $(cat file) > file2
[diesel@eifel tmp]$ cat file2
a b с


это конечно если в файле ВСЕГО три строки, а не "по-три на каждую строчку в выходном файле"
Спасибо сказали:
Аватара пользователя
fletch
Сообщения: 24
ОС: Arch Linux

Re: sed/awk перенос строк содержимого файла.

Сообщение fletch »

Спасибо, ваш способ решил вопрос! Даже не думал, что все настолько просто.
Спасибо сказали:
Аватара пользователя
NekoExMachina
Сообщения: 485
ОС: Кошерная.

Re: sed/awk перенос строк содержимого файла.

Сообщение NekoExMachina »

Код: Выделить всё

cat file|tr '\n' ' ' > file2

Так как-то прямее, чтоли.
На форуме больше не появляюсь.
Высокопарность и надменность довела.
OpenBSD-current+scrotwm*1 (acer aspire one 531h)
FreeBSD 8.1+kde3*1 (desktop)
FreeBSD 8.1+scrotwm*1 (hp530)
FreeBSD 9.0+dwm*1 (old toshiba satellite)

Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: sed/awk перенос строк содержимого файла.

Сообщение drBatty »

fletch писал(а):
06.10.2009 13:26
UPD. Рекомендовали xargs, но он натыкается на одинарную кавычку в строке и вываливается с ошибкой xargs: unmatched одинарная quote; by default quotes are special to xargs unless you use the -0 option.

ну и используйте -0 опцию, как вам этот xargs советует.


Кстати, куда тут привернуть мою любимую sed - даже и не знаю :)
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Gugloed
Сообщения: 50

Re: sed/awk перенос строк содержимого файла.

Сообщение Gugloed »

Ня!

Код: Выделить всё

$ cat > test.sed
a
b
c
d
$ sed ':A;N;s/\n/ /;tA;q' test.sed
a b c d
Красная площадь — это не только точное время, но и культурная программа с цирком и зоопарком.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: sed/awk перенос строк содержимого файла.

Сообщение drBatty »

Gugloed писал(а):
22.10.2009 10:15
sed ':A;N;s/\n/ /;tA;q' test.sed

Код: Выделить всё

$ sed -rn 'H;${g;s/\n/ /gp}' aa.txt

правда пробел перед первой строкой добавляется. можно и убрать, если это очень важно...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали: