|
|
|
Помогите с алгоритмом на shell, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Имеется файл tm.csv С форматом: xxx,yyy,zzz… В шестой колонке содержаться ID. Второй файл rs.xml В нем "этиже" ID содержаться в тегах <ID> & </ID>. Теги ID по схеме помещены в теги <PROD_TYPE> & </PROD_TYPE> в них есть и другие… <PROD_TYPE> … <ID> </ID> … </PROD_TYPE> Нужно по ID из tm.csv вывести соответствующие секции <PROD_TYPE> из rs.xml. (awk ' BEGIN {FS=","} {print $6} ' tm.csv) #получили все ID из tm.csv Но нужно получить след. Картину: ID <PROD_TYPE> … <ID> </ID> … </PROD_TYPE> ID <PROD_TYPE> … <ID> </ID> … </PROD_TYPE> Подскажите, пожалуйста, как по ID вывести целиком секцию <PROD_TYPE> к которой он принадлежит??? Grep с ключами -A и -B не подходит, т.к. Кол-во строк в тегах <PROD_TYPE> может сильно варьироваться… Нужна какая-то выборка тегов <PROD_TYPE> с проверкой условий, что ID совпадает, который в нем… я не могу придумать реализуемый алгоритм… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 13:20 |
|
||
|
Помогите с алгоритмом на shell, пожалуйста
|
|||
|---|---|---|---|
|
#18+
лично я бы делал так предполагаем большие файлы, тоесть хранить много в оперативке...самому бегать по файлу выискивая нужную часть в цикле - не варианты... ещо добавим одно требование - не нарушать форматирование файла хмл это отсекает вариант любой, требующий сортировки хмл файла. раз не может сортировать, чтобы нужное всплыло вверх/ в конец файла значит надо индексировать седом бежим по хмл, получаем индексы из <PROD_TYPE> … <ID> XX </ID> … </PROD_TYPE> ХХ №строка_начала №строки_конца пробежав по цсв, получить просто номера айдишников(один айди = одна строка) сливаем всё в один файл и пропускаем через сортировку получим аля айди есть и секция в хмл есть хх хх 10 20 уу сс 60 70 хх есть и айди и секция хмл уу айди есть секции нету в хмл сс в хмл есть но нету айдишника в цсв старым добрым седом получаем из выше - файл где просто в строках по два номера с по строчек из хмл для вывода. ЗЫ я бы из файла 10 20 100 110 200 210 сделал бы файл команд для седа 10,20p 100,110p 200,210p ... файл может получиться большим - и для оперативки сложно будет...разбить на несколько ну и прогнать хмл оригинальный через сед, с файлом команд выше. это в лоб что приходит на ум ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 19:14 |
|
||
|
Помогите с алгоритмом на shell, пожалуйста
|
|||
|---|---|---|---|
|
#18+
ясно до момента: ХХ №строка_начала №строки_конца ID в несколько символов, и точно в одной строке: e.g. <ID>FR_DM</ID> а дальше номера строк каких? <PROD_TYPE> и </PROD_TYPE> Модератор: Тема перенесена из форума "Программирование". Модератор: Тема перенесена из форума "Программирование". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2014, 14:42 |
|
||
|
Помогите с алгоритмом на shell, пожалуйста
|
|||
|---|---|---|---|
|
#18+
the_strelockясно до момента: ХХ №строка_начала №строки_конца ID в несколько символов, и точно в одной строке: e.g. <ID>FR_DM</ID> а дальше номера строк каких? <PROD_TYPE> и </PROD_TYPE> Модератор: Тема перенесена из форума "Программирование". Модератор: Тема перенесена из форума "Программирование". да, номера строк, это начало и конец блока с нужным айдишником. ЗЫ похоже индексы с джоином в субд сработают сначала будет получени список айди - адрес где храниться строка таблицы, а потом по этому списку считывание данных из файла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 16:46 |
|
||
|
|

start [/forum/topic.php?fid=25&fpage=37&tid=1482358]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 149ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...