Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
ruslanstep1
- мл. сержант
- Сообщения: 92
- Зарегистрирован: 2010-04-14 11:40:46
Непрочитанное сообщение
ruslanstep1 » 2011-11-27 13:54:11
Нужно 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
Заранее Всем спасибо
ruslanstep1
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
ruslanstep1
- мл. сержант
- Сообщения: 92
- Зарегистрирован: 2010-04-14 11:40:46
Непрочитанное сообщение
ruslanstep1 » 2011-11-27 16:01:50
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
ruslanstep1
-
Bayerische
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Непрочитанное сообщение
Bayerische » 2011-11-27 18:31:44
Первым проходом
tr "\n\n" "#"
Вторым проходом
tr "\n" " "
Третьим проходом
tr "#" "\n "
Bayerische
-
x6e6564
- проходил мимо
Непрочитанное сообщение
x6e6564 » 2011-11-28 5:16:32
Если пол-во "столбцов" одинаково, то наверно следует использовать 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
x6e6564
-
kpp
- лейтенант
- Сообщения: 613
- Зарегистрирован: 2009-08-05 16:10:46
- Откуда: Украина Днепропетровск-Киев
-
Контактная информация:
Непрочитанное сообщение
kpp » 2011-11-28 21:08:26
Предлагаю более (как по мне) красивый вариант:
Код: Выделить всё
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
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.
kpp
-
kpp
- лейтенант
- Сообщения: 613
- Зарегистрирован: 2009-08-05 16:10:46
- Откуда: Украина Днепропетровск-Киев
-
Контактная информация:
Непрочитанное сообщение
kpp » 2011-11-29 16:16:12
2 Bayerische
Этот скрипт тестировал именно на FreeBSD. Или я чего не понял?
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.
kpp