0 / 0 / 0
Регистрация: 15.02.2019
Сообщений: 11
|
|
1 | |
Шинковка *.TXT файла с последующим переименованием из текста01.07.2023, 08:59. Показов 739. Ответов 17
Метки нет (Все метки)
Доброго времени суток всем! вопрос такой у меня есть куча текстовых файлов (логов) с внутреней структурой
Кликните здесь для просмотра всего текста
Код
[Note] ...., path: Logs.... (depth: 5) 10.12.2020.18.13.33 тут текст [Note] ...., path: Logs.... (depth: 5) 11.12.2020.18.13.33 и тут текст и у меня есть батник с помощью которого я режу 1 файл размером пару сотен метров на куски и переименовываю их выглядит он так Кликните здесь для просмотра всего текста
Код
@echo off REM тут имя файла set "f=00.txt" REM triger по которому срабатывает нарезка с удалением пробелов так чтобы имя в файле было первой строкой set "m=[Note]" REM команда нарезать setlocal enabledelayedexpansion <"%f%" (for /f "delims=" %%a in ('find /v ""') do @echo %%a|>nul find "%m%" && (set /a n+=1& rem:>"f!n!.txt") || (if exist "f!n!.txt" >>"f!n!.txt" echo:%%a)) REM команда переименовать for /f "delims=" %%a in ('dir /b *.txt') do ( call :1 "%%a" ) exit :1 chcp 1251 >nul for /f "usebackq delims=" %%b in (%1) do ( set n=0 set /a n+=1 if !n!==1 (>nul chcp 866 & echo %%b & ren %1 "%%b.txt" & exit /b) ) endlocal pause>nul так вот вопрос банник работает но не совсем корректно выполнение происходит через 2 команды и созданные файлы переименоваются 2 раза (1 раз при создании и 2 раз при извлечении имени из первой строки в этом файле) - помогите объединить эти 2 команды в одну при том чтобы как и в первой команде дописывалось цифра если имена файлов совпадают. Заранее благодарю за ваше внимание.
0
|
01.07.2023, 08:59 | |
Ответы с готовыми решениями:
17
Анализ содержимого .docx с последующим его переименованием Нужен скрипт для копирования каталогов, содержащих текущую дату, с последующим переименованием Как сделать перенос из отдного txt файла текста в другой txt файл в Turbo C? Добавление текста из txt файла в середину другого текстового файла Файл: Переписать текст в t3.txt сначала из файла t1.txt, а потом из файла t2.txt |
6244 / 2121 / 335
Регистрация: 10.12.2013
Сообщений: 7,331
|
|
01.07.2023, 09:17 | 2 |
без банных принадлежностей, можно просто показать образец обрабатываемого файла
и показать, что должно быть на выходе после обработки ?
0
|
0 / 0 / 0
Регистрация: 15.02.2019
Сообщений: 11
|
|
01.07.2023, 09:25 [ТС] | 3 |
батник работает но при выполнении второй команды если имя совпадает он просто пропускает переименование файла
на выходе получается файл с текстом без метки [Note] ...., path: Logs.... (depth: 5)
0
|
6244 / 2121 / 335
Регистрация: 10.12.2013
Сообщений: 7,331
|
|
01.07.2023, 09:30 | 4 |
работает, но не работает.
понимаю. а если ответить всё-таки на вопрос 'можно просто показать образец обрабатываемого файла ?'
0
|
0 / 0 / 0
Регистрация: 15.02.2019
Сообщений: 11
|
|
01.07.2023, 09:49 [ТС] | 5 |
Desktop.zip
обрезал чтоб не грузить кучу ненужных строк
0
|
6244 / 2121 / 335
Регистрация: 10.12.2013
Сообщений: 7,331
|
|
01.07.2023, 10:34 | 6 |
фантастика.
а теперь 2-я часть вопроса: имея перед глазами этот образец, что должно быть на выходе после обработки ?
0
|
0 / 0 / 0
Регистрация: 15.02.2019
Сообщений: 11
|
|
01.07.2023, 10:50 [ТС] | 7 |
ещё раз проверил на выходе создаётся 3 файла (файл 0.txt, файл 1.txt и файл с мусором который не столь важен)
не понимаю суть вопроса при выполнении первой команды файл режется на части (части переименовываются в f1, f2, f3, f4 и так далее до 10000) далее выполняется вторая команда которая считывает первую строку и записывает её как имя но если имя совпакает с именем файла в директории то файл не переименовывается я добавил файл примера и то что получается на выходе Desktop.zip
0
|
6244 / 2121 / 335
Регистрация: 10.12.2013
Сообщений: 7,331
|
||||||
01.07.2023, 11:54 | 8 | |||||
передо мной фрагмент файла для обработки ( то, что ты прислал в зипе ):
0
|
0 / 0 / 0
Регистрация: 15.02.2019
Сообщений: 11
|
|
01.07.2023, 12:09 [ТС] | 9 |
во втором файле Desktop.zip файлы вывода тоже приложены (это именно файлы после обработки батником я их не правил)
0
|
6244 / 2121 / 335
Регистрация: 10.12.2013
Сообщений: 7,331
|
|
01.07.2023, 12:52 | 10 |
э-э...
может я оскорблю тебя в твоих лучших чувствах, а зачем их резать ? хороший монотонно-последовательный лог, поле с timestamp, приборы там, панимаш, и Result, и info_var, а ты его резать. Зачем ?
0
|
6244 / 2121 / 335
Регистрация: 10.12.2013
Сообщений: 7,331
|
|
01.07.2023, 12:56 | 11 |
0
|
0 / 0 / 0
Регистрация: 15.02.2019
Сообщений: 11
|
|
01.07.2023, 13:02 [ТС] | 12 |
программа пишет лог 24/7 дописывая в лог файл инфу останавливать программу крайне нежелательно из за этого лог файл разрастается больше 200 метров в сутки а при помехах на линии ещё больше для анализа открывать такие большие файлы очень долго проще порезать их
0
|
6244 / 2121 / 335
Регистрация: 10.12.2013
Сообщений: 7,331
|
|
01.07.2023, 13:43 | 13 |
заливай в sqlite;
200 Мб в сутки - это 6 Гб в месяц; приемлемо. если без индекса. в конце месяца подрезать, оставить только последние 10 дней ( или какая там политика ) запрос на анализ - ну, 0.5 секунды Добавлено через 3 минуты использование пользовательского интерфейса работы с файловой системы в качестве инструмента анализа/обработки данных - это страшный грех, по сравнению с которым прелюбодеяние с козой Нюркой покажется детской шалостью.
0
|
0 / 0 / 0
Регистрация: 15.02.2019
Сообщений: 11
|
|
01.07.2023, 13:43 [ТС] | 14 |
ты лучше подскажи как реализовать всё в одной команде переименовывая файл на стадии деления
0
|
6244 / 2121 / 335
Регистрация: 10.12.2013
Сообщений: 7,331
|
|
01.07.2023, 13:55 | 15 |
нет. это не лучше.
для меня это предложение звучит как: "Ну что ты мне всё про гуманность, лучше подскажи, как украсть 3-х младенцев из роддома и продать на органы?" Добавлено через 4 минуты да и не будет там 6Гб, получится база не больше 1Гб, да ещё и с индексом.
0
|
0 / 0 / 0
Регистрация: 15.02.2019
Сообщений: 11
|
|
03.07.2023, 09:10 [ТС] | 16 |
тогда какой смысл был флудить в теме если Вы так и так помогать не собирались
0
|
6244 / 2121 / 335
Регистрация: 10.12.2013
Сообщений: 7,331
|
|
03.07.2023, 13:56 | 17 |
gipperpank,
дорогой друг, у меня нет желания помогать кому-либо делать гадкие и стыдные вещи. можно нашинковать файл на 2n кусков и переименовать их самым причудливым образом, но это никак не поможет тому, ради чего всe эти IT-технологии нужны, а именно - увеличению производительности труда и надлежащему хранению информации. причем это взаимосвязанные понятия. Ценность какого-либо файла с данными заключается в том, что находится внутри него, а не в том, как именно этот файл называется. Попытки превратить первое во второе, а именно, вывернуть файл наизнанку и попытаться отразить полезную информацию в имени файла, манипулируя множеством файлов как множеством данных, является порочной практикой. и об этом я тебе уже сказал. но ты глух. ожидаемо. да, командный интерпретатор cmd.exe со своими немногочисленными друзьями в виде корявых консольных утилит времен прошлого века, которыми добрый дядя Уильям снабдил ОС Windows, не предоставляет никаких инструментов для увеличения производительности труда и правильного хранения информации, но большой беды в этом нет, поскольку все ( ну, почти все ) хорошие инструменты и целевые программы можно доустановить в эту ОС и с успехом пользоваться. Так вот. Возвращаясь не к теме, а к сути проблемы. Тебе надо разобрать строки, оставить только те события в логе, какие могут понадобиться и залить их в БД относительно осмысленным образом. После чего можно будет пользоваться этой БД, поскольку инструментов для работы с ней для анализа и обработки данных более чем достаточно. маленькой утилиты sqlite3.exe из состава однопользовательской БД Sqlite тут хватит за глаза. Вся сложность на тек. момент в разборе строк лога, а именно какие именно поля вычленить из строки, выбросив остальное, без потери смысла - читай информации, чтобы потом не было мучительно больно. инструменты для разбора - скриптовые языки: powershell* / perl / python / ruby / vbscript*. Или даже C#*, хоть это и не скрипт язык. зато он есть на борту. ( помеченные * есть уже в составе Windows ) поэтому есть смысл, как мне кажется, переместиться в любой раздел, посвящённой данным инструментам PS: твой хамский пассаж про 'флуд' оставляю без комментария. ( и да, я минут 30 рассматривал предоставленный тобой после неоднократных запросов кусок лога прежде чем написать то, что написал выше )
0
|
0 / 0 / 0
Регистрация: 15.02.2019
Сообщений: 11
|
|
04.07.2023, 06:52 [ТС] | 18 |
Мой хамский пассаж Вы так и не поняли, я просил помощи а не дискуссию о важности данных, я предоставил свой вариант пусть даже не совсем корректно работающий, а от Вас кроме кучи вопросов как таково ничего не последовало, возвращаясь к вашему предыдущему сообщению я в курсе что есть более удобные скриптовые языки но политика места моей работы не позволяет использовать ничего.
У меня нет настроения и времени общаться с Вами, решение было найдено, файлы обрабатываются автоматом, теперь это не моя морока а диспетчеров я этого более не касаюсь, тема закрыта.
0
|
04.07.2023, 06:52 | |
04.07.2023, 06:52 | |
Помогаю со студенческими работами здесь
18
Удаление текста из txt файла Считывание текста с файла .txt Чтение текста из .txt файла Вывод текста из файла .txt Чтение текста их txt файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |