Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Разбить txt файл по строкам и файлам (http://forum.oszone.net/showthread.php?t=306443)

Acred 09-10-2015 10:33 2562174

Разбить txt файл по строкам и файлам
 
Помогите реализовать такую задачу:
Есть файл Temp.txt со строками к примеру:
1x Temp Temp
1x Temp Temp
2x Temp Temp
2x Temp Temp

Каждый столбик разделен табуляцией.
Как его разбить на два файла, чтоб получилось:
1x.txt со строками:
1x Temp Temp
1x Temp Temp
2x.txt
со строками:
2x Temp Temp
2x Temp Temp

greg zakharov 09-10-2015 11:08 2562189

Код:

@findstr /rc:"^1" temp.txt>1x.txt
@findstr /rc:"^2" temp.txt>2x.txt


Acred 09-10-2015 11:44 2562199

Отлично! а если мне ну нужно, к примеру, из всех столбцов взять только первый и третий?

greg zakharov 09-10-2015 12:04 2562201

Код:

@echo off
  call:findStrings 1 temp.txt
  call:findStrings 2 temp.txt
exit /b

:findStrings
for /f "tokens=1,3" %%i in ('findstr /rc:"^%1" %2') do (
  echo:%%i %%j>>%1.txt
)
exit /b


Acred 09-10-2015 12:36 2562211

Просто шикарно! Все работает!
А как за место 1x,2x использовать кириллицу?

greg zakharov 09-10-2015 12:56 2562218

temp.txt (cp1251):
1А тест текст
1Б текст тест
2А альфа бета
2Б бета альфа

Код:

@echo off
  chcp 1251>nul
    call:findStrings 1 foo
    call:findStrings 2 foo
  chcp 866>nul
exit /b

:findStrings
for /f "tokens=1,3" %%i in ('findstr /rc:"^%1" %2') do (
  echo:%%i %%j>>%1.txt
)
exit /b


Acred 09-10-2015 13:32 2562229

Спасибо большое!

Acred 12-10-2015 15:02 2563007

Подскажите пожалуйста как сделать если нужно взять четыре столбика причем в порядке 4,2,3,1
И еще вопрос как это дело все ускорить
Исходный файл весит 10мб он обрабатывает это все 20-30 минут

Georgio 12-10-2015 16:50 2563051

Код:

@echo off
>nul chcp 1251
set "d=        "
for /f "usebackq tokens=1-4 delims=%d%" %%i in ("Temp.txt") do >>"%%i.txt" echo.%%l%d%%%j%d%%%k%d%%%i
exit/b


Iska 12-10-2015 18:08 2563067

Цитата:

Цитата Acred
И еще вопрос как это дело все ускорить
Исходный файл весит 10мб он обрабатывает это все 20-30 минут »

Перейти к использованию WSH/PoSH.


Время: 22:10.

Время: 22:10.
© OSzone.net 2001-