Помощь по парсингу txt

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

Помощь по парсингу txt

Непрочитанное сообщение bagas » 2013-06-28 9:04:20

Утро доброе.
Помоги разобраться как мне сделать такое.
Парсинг xls.
# xls2csv -q 0 /mnt/share/Обработанные_списки/2013-06-27/реестр№23от27июня.xls
Выходит три страници.
мне нужно из них определенный кусок, начинается он на:

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

,,
^L30117613660371050010,Иванов Иван Иванович,,,,,,,,,,,,
И так куча строк с сотрудниками.
30117613660371050010,Иванов Иван Иванович,,,,,,,,,,,,
30117613660371050010,Иванов Иван Иванович,9629,97,,,,,,,,,,,
30117613660371050010,Иванов Иван Иванович,34552,2,,,,,,,,,,,
,,,,,,,,,,,
,,,,,,,,,,,
,,,,,,,,,,,
,,,,,,,,,,,
,,,,,,,,,,,
,,,,,,,,,,,
^L
Заканчивается.
Конечно строк у этого куска все время разное.
Подскажите как лучше и практичнее выдернуть этот кусок.?
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.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/

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

Re: Помощь по парсингу txt

Непрочитанное сообщение bagas » 2013-06-28 10:13:30

Такс разобрался с поставленной задачей сам.
# xls2csv -q 0 /mnt/share/Обработанные_списки/2013-06-27/реестр№23от27июня.xls | sed '0,/^L/d; /^,,,,,,,,,,,/q' | grep ",,," | sed 's/,,,,,,,,,,,$//' | sed '$d' | sed 's/\(.*\...\).*/\1/' | uniq -u | sed 's/\ \{1,\},/,/g; s/\([0-9]\{1,\}\),\([0-9]\{1\}\)/\1.\2/'
получим такую картину

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

30117613660371050010,Иванов Иван Иванович,
30117613660371050010,Иванов Иван Иванович,
30117613660371050010,Иванов Иван Иванович,9629,97
30117613660371050010,Иванов Иван Иванович,34552,2
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.