Страница 1 из 1

Кто поможет превести текст в такой вид

Добавлено: 2011-11-27 13:54:11
ruslanstep1
Нужно Bash скриптом привести вот этот текст
  • УЖ-809132
    УЖ-809132
    00170
    2011-11-26
    01462K211
    1040.00
    5200.00
    кг
    УЖ-809132



    УЖ-809132
    УЖ-809132
    00170
    2011-11-26
    05736K202
    720.00
    14400.00
    шт
    УЖ-809132
к такому
  • УЖ-809132 УЖ-809132 00170 2011-11-26 01462K211 1040.00 5200.00 кг УЖ-809132
    УЖ-809132 УЖ-809132 00170 2011-11-26 05736K202 720.00 14400.00 шт УЖ-809132
Заранее Всем спасибо

Re: Кто поможет превести текст в такой вид

Добавлено: 2011-11-27 15:51:21
Bayerische
tr "\n" " "

Re: Кто поможет превести текст в такой вид

Добавлено: 2011-11-27 16:01:50
ruslanstep1
Bayerische писал(а):tr "\n" " "
эта команда переводит все в одну строку
  • УЖ-809132 УЖ-809132 00170 2011-11-26 01462K211 1040.00 5200.00 кг УЖ-809132 УЖ-809132 УЖ-809132 00170 2011-11-26 05736K202 720.00 14400.00 шт УЖ-809132 УЖ-809132 УЖ-809132 00170 2011-11-26 08278K204 216.00 1296.00 кг УЖ-809132 УЖ-809132 УЖ-809132 00170 2011-11-26 02687K201 432.00 2592.00 кг УЖ-809132

Re: Кто поможет превести текст в такой вид

Добавлено: 2011-11-27 18:31:44
Bayerische
Первым проходом
tr "\n\n" "#"
Вторым проходом
tr "\n" " "
Третьим проходом
tr "#" "\n "

Re: Кто поможет превести текст в такой вид

Добавлено: 2011-11-28 5:16:32
x6e6564
Если пол-во "столбцов" одинаково, то наверно следует использовать xargs

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

cat /tmp/1.txt
УЖ-809132
УЖ-809132
00170
2011-11-26
01462K211
1040.00
5200.00
кг
УЖ-809132
cat /tmp/1.txt | xargs -n 9
УЖ-809132 УЖ-809132 00170 2011-11-26 01462K211 1040.00 5200.00 кг УЖ-809132

Re: Кто поможет превести текст в такой вид

Добавлено: 2011-11-28 21:08:26
kpp
Предлагаю более (как по мне) красивый вариант:

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

sed -n '/^..*$/,/^$/{; /^$/!H; /^$/{; x; s/\n/ /g; p; }; ${; x; s/\n/ /g; p; }; }' file.txt
Или более короткий вариант, но тогда нужно соблюсти условие: в конце файла должно быть обязательно два \n

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

sed -n '/^..*$/,/^$/{; /^$/!H; /^$/{; x; s/\n/ /g; p; }; }' file.txt

Re: Кто поможет превести текст в такой вид

Добавлено: 2011-11-29 16:06:12
Bayerische
kpp
Shell FreeBSD не умеет \n. В Линупсе пожалуйста.

Re: Кто поможет превести текст в такой вид

Добавлено: 2011-11-29 16:16:12
kpp
2 Bayerische
Этот скрипт тестировал именно на FreeBSD. Или я чего не понял?

Re: Кто поможет превести текст в такой вид

Добавлено: 2011-11-30 5:47:36
ruslanstep1
Всем спасибо :bn: