Показать полную графическую версию : [решено] Данные из .txt
aggressor_
13-04-2011, 03:36
Всем привет!
Есть txt файл в котором вот такие строки
('snkolja@mail.ru', '14e1b6440b1fd579f47433b68e8d85271', 'kolja', 10190, 0, 0, 4, '1290335838', '1253778199', '', 1, '', '', '', 'Николай', 'Minsk, '', '', 1, 0, '', '', '', '4d6fe3e748a4fb8964073324880e393b', '4.8.247.250', 0, 0, '', 0, 0, 0, '0', '0', 0, 0, '0', '', '', '', '', '', '', '', '', '', '', '', ''),
Нужно что бы было так:
snkolja@mail.ru
14e1b6440b1fd579f47433b68e8d85271
kolja
10190
Николай
Minsk
...
Необходимо подчёркнутое перенести в другой txt файл (подчеркнул я для наглядности). Руками не подойдёт, очень много. Можно ли как-нибудь данный процесс автоматизировать?
Да, это из MySQL))
Выствил CMD/BAT, но это не имеет значение, подойдёт любой способ...
Есть txt файл в котором вот такие строки »следовало бы привести минимум 2 строки, а то запятая в конце наводит на разные нехорошие мысли...
тем не менее, вариант на AWK (http://gnuwin32.sourceforge.net/packages/gawk.htm):<1.txt >2.txt gawk -v FS="^[(]'?|'?, '?" -v _=\n "{print $2_$3_$4_$5_$16_$17_}"1.txt - исходный файл
2.txt - результат
aggressor_
13-04-2011, 15:02
('djusli@inbox.ru', '43b09a474f90cfc26a335c8b7413211a', 'imane', 22501, 0, 0, 4, '1275678577', '1261521831', '', 1, '', '', '', 'Андрей', 'Минск', 'Номер ICQ', '', 1, 1, '', '', '', '83c3c8fbe2143f33d11e25f185c615a0', '9.5.87.173', 0, 0, '', 0, 0, 0, '0', '0', 0, 0, '0', '', '', '', '', '', '', '', '', '', '', '', ''),
('fwqrt@mail.ru', '69fy4u79e3619bcd79fdf55dc0a0699b', 'Sm', 22500, 0, 1, 4, '1270201314', '1261521656', '', 1, '', '', '', 'Артём', 'Минск', 'Номер ICQ', '', 1, 1, '', '', '', '803aab649bff7684449db020ee96a5ddb', '8.0.162.138', 0, 0, '', 0, 0, 0, '0', '0', 0, 0, '0', '', '', '', '', '', '', '', '', '', '', '', ''),
и так далее, каждая запись с новой строки, оканчивается запятой.
<1.txt >2.txt gawk -v FS="^[(]'?|'?, '?" -v _=\n "{print $2_$3_$4_$5_$16_$17_}"
1.txt - исходный файл
2.txt - результат
Нужно указывать путь? Это в батник?
батник из одной строки... предполагается, что сам батник, gawk.exe и 1.txt лежат в одной папке, иначе нужно указывать пути
aggressor_
13-04-2011, 18:36
что-то не работает, создал txt, в него скопировал
<1.txt >2.txt gawk -v FS="^[(]'?|'?, '?" -v _=\n "{print $2_$3_$4_$5_$16_$17_}"
переименовал в copy.bat
в 1.txt мои строки
('djusli@inbox.ru', '43b09a474f90cfc26a335c8b7413211a', 'imane', 22501, 0, 0, 4, '1275678577', '1261521831', '', 1, '', '', '', 'Андрей', 'Минск', 'Номер ICQ', '', 1, 1, '', '', '', '83c3c8fbe2143f33d11e25f185c615a0', '9.5.87.173', 0, 0, '', 0, 0, 0, '0', '0', 0, 0, '0', '', '', '', '', '', '', '', '', '', '', '', ''),
('fwqrt@mail.ru', '69fy4u79e3619bcd79fdf55dc0a0699b', 'Sm', 22500, 0, 1, 4, '1270201314', '1261521656', '', 1, '', '', '', 'Артём', 'Минск', 'Номер ICQ', '', 1, 1, '', '', '', '803aab649bff7684449db020ee96a5ddb', '8.0.162.138', 0, 0, '', 0, 0, 0, '0', '0', 0, 0, '0', '', '', '', '', '', '', '', '', '', '', '', ''),
дополнительно создал 2.txt, всё в одной папке. По нажатию на copy.bat ничего не происходит.
Может нужна какая-то определённая кодировка?
----------------------------------
если 2.txt не создавать, то после выполнения батника появляется пустой txt файл.
aggressor_, а GAWK.EXE из архива по линку поста #2 скопировали в эту папку?..
2.txt не нужен - он создаётся как результат работы батника
aggressor_
13-04-2011, 18:49
Большое спасибо, заработало))
snkolja@mail.ru
14e1b6440b1fd579f47433b68e8d85271
kolja
10190
Николай
Minsk
а можно сделать сортировку по этому пункту в порядке возрастания?
Напр
snkolja@mail.ru
14e1b6440b1fd579f47433b68e8d85271
kolja
10190
Николай
Minsk
s23ja@mail.ru
14e1b6440b1fd579f47433b68e8d85271
lesha
10191
Алексей
Minsk
а можно сделать сортировку по этому пункту в порядке возрастания? »за один проход уже не выйдет, как-то так:
<1.txt gawk -v FS="^[(]'?|'?, '?" -v _=^| "{print $5_$2_$3_$4_$16_$17}"|sort|gawk -v FS=^| -v _=\n "{print $2_$3_$4_$1_$5_$6_}">2.txt
aggressor_
13-04-2011, 19:27
немного не так , он сортирует так
1
10
100
1001
и т.д.
Ну ладно, без сортировки тоже хорошо.
тогда еще вариант:
<1.txt gawk -v FS="^[(]'?|'?, '?" -v _=^| "{printf\"%%10i\",$5;print _$2_$3_$4_$16_$17}"|sort|gawk -v FS="^ *|[|]" -v _=\n "{print $3_$4_$5_$2_$6_$7_}">2.txt
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.