Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Преобразование вывода лог файла

Ответить
Настройки темы
CMD/BAT - Преобразование вывода лог файла

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день,

подскажите пожалуйста как преобразовать вывод лог файла из вида
Код: Выделить весь код
2014-04-02 11:46:43,89.255.92.27:38649    ,ip
в такой вид
Код: Выделить весь код
89.255.92.27:38649 - - [12/Mar/2014:07:01:47 +0400] "ip"

Отправлено: 18:23, 02-04-2014

 

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Немного "похулиганил", не став использовать "for /f":

Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion
set "string=2014-04-02 11:46:43,89.255.92.27:38649    ,ip"
for %%i in (
 "01=Jan" "02=Feb" "03=Mar" "04=Apr" "05=May" "06=Jun"
 "07=Jul" "08=Aug" "09=Sep" "10=Oct" "11=Nov" "12=Dec"
) do set %%i
for /l %%i in (1 1 6) do (
 set n=
 for %%j in (%string:-= %) do (
  set /a n+=1
  if %%i==1 if !n!==5 <nul set /p="%%j - - ["
  if %%i==2 if !n!==3 <nul set /p="%%j/"
  if %%i==3 if !n!==2 <nul set /p="!%%j!/"
  if %%i==4 if !n!==1 <nul set /p="%%j:"
  if %%i==5 if !n!==4 <nul set /p="%%j +0400] "
  if %%i==6 if !n!==6 <nul set /p=""%%j""
 )
)
echo.
pause>nul
endlocal
exit /b
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:57, 02-04-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Georgio,
подскажи как сделать чтоб данные брались из файла txt и записывались в новый? данные построчно

Отправлено: 23:29, 02-04-2014 | #3


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


egoryich, подскажу, но только не раньше, чем через час.

Отправлено: 23:38, 02-04-2014 | #4


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Georgio,
спасибо, буду ждать, попробую сам добавить на твоем примере

Отправлено: 23:44, 02-04-2014 | #5


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion
for %%i in (
 Jan Feb Mar Apr May Jun
 Jul Aug Sep Oct Nov Dec
) do (
 set /a n+=1
 set month=0!n!
 set month=!month:~-2!
 set !month!=%%i
)
(
for /f "usebackq tokens=1-5 delims=-, " %%i in (
 "log.txt"
) do (
 echo %%m - - [%%k/!%%j!/%%i:%%l +0400] "ip"
)>"log_new.txt"
endlocal
exit /b

Отправлено: 05:25, 03-04-2014 | #6


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Georgio,
не срабатывает скрипт, не пойму что с ним(

Отправлено: 09:43, 03-04-2014 | #7


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


egoryich, извини! Скобка "соскочила".

Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion
for %%i in (
 Jan Feb Mar Apr May Jun
 Jul Aug Sep Oct Nov Dec
) do (
 set /a n+=1
 set month=0!n!
 set month=!month:~-2!
 set !month!=%%i
)
(
for /f "usebackq tokens=1-5 delims=-, " %%i in (
 "log.txt"
) do (
 echo %%m - - [%%k/!%%j!/%%i:%%l +0400] "ip"
)
)>"log_new.txt"
endlocal
exit /b
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:02, 03-04-2014 | #8


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Georgio,

привет, можешь исправить скрипт так, чтобы после скобок с датой, выводился ip:port как есть
пример - 2014-04-27 10:47:30,80.82.78.105:34766 ,192.168.1.1:53

Отправлено: 13:07, 15-05-2014 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Преобразование вывода лог файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] преобразование лог файла с деревом каталогов плоский вид shmel_sv@vk Скриптовые языки администрирования Windows 1 23-03-2014 16:42
CMD/BAT - Преобразование файла теста (*.tst) в текст DePuTaTiG Программирование и базы данных 0 18-02-2014 12:11
CMD/BAT - [решено] Преобразование кодировки файла utf-8 в Windows-1251 sea707 Скриптовые языки администрирования Windows 7 06-06-2011 08:32
PowerShell - Сложное преобразование xls или csv файла в текстовый tarasov.evgeny Скриптовые языки администрирования Windows 1 29-05-2011 15:04
Разное - Преобразование одного формата файла в другой Evgesha_572 Программирование и базы данных 3 04-02-2009 14:57




 
Переход