Помощь по sed

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
  [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
Herexx
18.02.2012 - 22:02
Статус: Offline


Хохмач

Регистрация: 5.09.08
Сообщений: 676
1
Требуется сделать csv из некоего документа который выглядит так:
Код

Transaction: System1


https://System1
--
Transaction: System2


https://System2
--
Transaction: System3


https://System3
--
Transaction: System4


https://System4
--


Желательно иметь в конечном итоге что-то вроде:
Код

System1;https://System1
System2;https://System2
System3;https://System3
System4;https://System4


Есть идеи?
Код
s/\(^Transaction.*\)/\1/\1;/

даёт пустой документ cry.gif
 
[^]
Yap
[x]



Продам слона

Регистрация: 10.12.04
Сообщений: 1488
 
[^]
thetosh
19.02.2012 - 08:31
1
Статус: Offline


Шутник

Регистрация: 8.07.08
Сообщений: 0
У меня вот чего получилось:
Код
# uname -srm
FreeBSD 8.0-RELEASE i386

# sed '/^$/d;/^--$/d;s/\(^Transaction\)\(\:[ ]*\)\(System.*\)/\3/I' sed.txt | sed 'N;s/\n/;/'
System1;https://System1
System2;https://System2
System3;https://System3
System4;https://System4

sed.txt — исходный файл.
 
[^]
Herexx
19.02.2012 - 20:28
0
Статус: Offline


Хохмач

Регистрация: 5.09.08
Сообщений: 676
Хмм, странно...Если делаю напрямую из бэша, всё ок, а из бэш-скрипта выдаёт пустой документ...
Код

bigtower:/usr/home/herexx> uname -srm
FreeBSD 9.0-RELEASE amd64


Бэш скрипт
Код

#!/usr/local/bin/bash -x
STAMP=`date +"%Y%m%d-%H%M"`
OUTDIR='/usr/home/herexx/data/Output/'
OUTNAME="Report_${STAMP}.csv"
sed '/^$/d;/^--$/d;s/\(^Transaction\)\(\:[ ]*\)\(System.*\)/\3/I' temp.txt | sed 'N;s/\n/;/' >> ${OUTDIR}${OUTNAME}



cranky.gif

Это сообщение отредактировал Herexx - 19.02.2012 - 20:28
 
[^]
thetosh
19.02.2012 - 22:26
1
Статус: Offline


Шутник

Регистрация: 8.07.08
Сообщений: 0
Цитата (Herexx @ 19.02.2012 - 21:28)
Хмм, странно...Если делаю напрямую из бэша, всё ок, а из бэш-скрипта выдаёт пустой документ...
Код

bigtower:/usr/home/herexx> uname -srm
FreeBSD 9.0-RELEASE amd64


Бэш скрипт
Код

#!/usr/local/bin/bash -x
STAMP=`date +"%Y%m%d-%H%M"`
OUTDIR='/usr/home/herexx/data/Output/'
OUTNAME="Report_${STAMP}.csv"
sed '/^$/d;/^--$/d;s/\(^Transaction\)\(\:[ ]*\)\(System.*\)/\3/I' temp.txt | sed 'N;s/\n/;/' >> ${OUTDIR}${OUTNAME}



cranky.gif

Гы! smile.gif У меня баша нет, только tcsh.
Попробуйте со стандартным шеллом:
!#/bin/sh
Со стандартным у меня Ваш скрипт прекрасно отрабатывает.
 
[^]
Herexx
19.02.2012 - 23:21
0
Статус: Offline


Хохмач

Регистрация: 5.09.08
Сообщений: 676
гыгыгы, и правда, в стандартном работает, спасибо за подсказку...
Интерестно чего башу не понравилось?!
thetosh
Сэнкс!!! beer.gif
 
[^]
thetosh
20.02.2012 - 00:16
0
Статус: Offline


Шутник

Регистрация: 8.07.08
Сообщений: 0
Цитата (Herexx @ 20.02.2012 - 00:21)
гыгыгы, и правда, в стандартном работает, спасибо за подсказку...
Интерестно чего башу не понравилось?!
thetosh
Сэнкс!!!  beer.gif

А пёс его знает. Был бы у меня баш, я бы поковырялся искусства ради. Но фряха у меня на контроллере домена стоит, так что лишний раз я его стараюсь не дёргать.

Да и вообще лучше всего ориентироваться на стандартный шелл, т.к. он везде есть. И возможностей его вполне достаточно.
 
[^]
Понравился пост? Еще больше интересного в Телеграм-канале ЯПлакалъ!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 1593
0 Пользователей:
[ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]


 
 



Активные темы






Наверх