@Echo off
cls
@rem
@rem
"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
@rem
"ПРИМЕР выборки рефератов публикаций на конференциях "
@rem
"(н/т мероприятиях) с 1993 по 2013 гг. "
@rem
@rem
"Выборка строк производится из файла базы данных (БД) "
@rem
"'c-polarization_radar.csv' в папке 'dbcj' "
@rem
@rem
"Критерий выборки: "
@rem
"извлекаемые строки должны содержать словосочетания "
@rem
"'bistatic' ИЛИ(И) 'airborne SAR' "
@rem
"то есть 'двухпозиционный' ИЛИ(И) 'самолетная РЛС с СА' "
@rem
@rem
"Шаблоны для поиска записаны в файле 'template.txt' "
@rem
"в виде последовательных строк: "
@rem bistatic
@rem airborne SAR
@rem
@rem
"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
@rem
@rem
"1. Удаляем предыдущие результаты"
@rem
echo
1. “¤ «ҐЁҐ ЇаҐ¤л¤гйЁе १г«мв в®ў
nircmd wait 500
@rem
if
exist srch\*result*.csv del /Q srch\*result*.csv
@rem
if
exist temp\*.* del /Q temp\*.*
@rem
if
not exist temp
mkdir
temp
if
not exist srch
mkdir
srch
@rem
@rem
"---------------------------------------------------------"
@rem
"2. Проверяем наличие файлов БД в папке 'dbcj' "
@rem
"(Если файлов нет, то выходим из обработки) "
@rem
echo
2. Џа®ўҐаЄ «ЁзЁп csv-д ©«®ў Ў § ¤ ле ў Ї ЇЄҐ
'dbcj'
nircmd wait 500
@rem
ls
dbcj\*.csv >temp\zuc01
@rem
set
Size=0
set
Files=temp\zuc01
for
%%F
in
(%Files%)
do
if
/i %%~zF EQU %Size% del /f %%F
@rem
if
not exist temp\zuc01 goto CLEAN
@rem
@rem
"---------------------------------------------------------"
@rem
"3. Подготовка файла 'template.txt' к выборке "
@rem
"(формирование файла 'temp\tmpl') "
@rem
echo
3. Џ®¤Ј®в®ўЄ д ©«
'template.txt'
Є ўлЎ®аЄҐ
nircmd wait 500
@rem
@rem
"Удаляем множественные пробелы "
sed
"s/ */ /g"
<template.txt >temp\zuf01
@rem
@rem
"Удаляем пробелы и табуляции в конце строк "
sed
"s/[ \t]*$/\r/"
<temp\zuf01 >temp\zuf02
@rem
@rem
"Удаляем пустые строки в файле 'template.txt' "
grep
"."
<temp\zuf02 >temp\zuf03
@rem
@rem
"Вставляем переносы в конце строк "
sed
"s/$/\r/"
<temp\zuf03 >temp\tmpl
@rem
@rem
"---------------------------------------------------------"
@rem
"4. Выборка строк в базах данных"
@rem
echo
4. ‚лЎ®аЄ бва®Є ў Ў § е ¤ ле
nircmd wait 500
@rem
@rem
"ЦИКЛ выборки по списку 'temp\zuc01' файлов БД"
@rem
@rem
"------------------------------------------- "
@rem
"4.1. Выборка строк. Вариант 1"
@rem
@rem
"Из csv-файла извлекаются ВСЕ строки, содержащие "
@rem
"словосочетания 'bistatic' ИЛИ 'airborne SAR' "
@rem
"независимо от регистра "
@rem
"Для этого формируются bat-файлы со строкой вида "
@rem
grep
-f temp\tmpl -i <dbcj\c-polarization_radar.csv >srch\c1-result1.csv
@rem
@rem
@rem
"--------------------------------- "
@rem
"Конференции"
@rem
"Формирования bat-файла 'ztmpc-1.bat' со строками вида "
@rem
grep
-f temp\tmpl -i <dbcj\c-polarization_radar.csv >srch\c1-result1.csv
@rem ...
@rem
sed
"/\\c-/!d"
<temp\zuc01 >temp\zuc02
set
Size=0
set
Files=temp\zuc02
for
%%F
in
(%Files%)
do
if
/i %%~zF EQU %Size% del /f %%F
@rem
if
not exist temp\zuc02 goto MC1
@rem
sed
= temp\zuc02 |
sed
"N;s/\n/\t/"
>temp\zuc03
cut
-f2 <temp\zuc03 >temp\zuc04
sed
"s/^\(.*\)$/grep -f temp\\tmpl -i <\1\ >srch\\c/"
<temp\zuc04 >temp\zuc04-1
cut
-f1 <temp\zuc03 >temp\zuc04-2
paste
temp\zuc04-1 temp\zuc04-2 >temp\zuc05
sed
"s/\t//;s/$/-result1\.csv\r/"
<temp\zuc05 >ztmpc-1.bat
if
exist ztmpc-1.bat CALL ztmpc-1.bat
:MC1
@rem
@rem
"--------------------------------- "
@rem
"Журналы"
@rem
"Формирования bat-файла 'ztmpj-1.bat' со строками вида"
@rem
grep
-f temp\tmpl -i <dbcj\j-polarimetric_radar_systems.csv >srch\j1-result1.csv
@rem ...
@rem
sed
"/\\j-/!d"
<temp\zuc01 >temp\zuc06
set
Size=0
set
Files=temp\zuc06
for
%%F
in
(%Files%)
do
if
/i %%~zF EQU %Size% del /f %%F
@rem
if
not exist temp\zuc06 goto MJ1
@rem
sed
= temp\zuc06 |
sed
"N;s/\n/\t/"
>temp\zuc07
cut
-f2 <temp\zuc07 >temp\zuc08
sed
"s/^\(.*\)$/grep -f temp\\tmpl -i <\1\ >srch\\j/"
<temp\zuc08 >temp\zuc08-1
cut
-f1 <temp\zuc07 >temp\zuc08-2
paste
temp\zuc08-1 temp\zuc08-2 >temp\zuc09
sed
"s/\t//;s/$/-result1\.csv\r/"
<temp\zuc09 >ztmpj-1.bat
if
exist ztmpj-1.bat CALL ztmpj-1.bat
:MJ1
@rem
@rem
"------------------------------------------- "
@rem
"4.2. Выборка строк. Вариант 2 "
@rem
@rem
"Извлекаются ВСЕ строки, содержащие словосочетания "
@rem
"'bistatic' И 'airborne SAR' "
@rem
"Результат выборки записывается в файл 'result2.csv' "
@rem
@rem
"--------------------------------- "
@rem
"Формирование файла 'temp\tmpl2' "
sed
-n
"H;${x;s/\n/#/g;p}"
<temp\tmpl >temp\tmpl2
@rem
@rem
"--------------------------------- "
@rem
"Конференции "
@rem
"Формирования bat-файла 'ztmpc-2.bat' со строками вида "
@rem
grep
"bistatic.*airborne SAR"
-i <dbcj\c-polarization_radar.csv >srch\c1-result2.csv
@rem
sed
"s/^#/\\x22/"
<temp\tmpl2 >temp\zuc10
sed
"s/#/\.\*/"
<temp\zuc10 >temp\zuc11
@rem
sed
"s/^\(.*\)$/sed \x22s\/grep -f temp\\\\tmpl\/grep \1\\x22\/\x22 <ztmpc-1.bat >temp\\zuc13/"
<temp\zuc11 >zuc12.bat
CALL zuc12.bat
sed
"s/result1/result2/;s/$/\r/"
<temp\zuc13 >ztmpc-2.bat
CALL ztmpc-2.bat
if
exist zuc12.bat del /Q zuc12.bat
@rem
@rem
"--------------------------------- "
@rem
"Журналы "
@rem
"Формирования bat-файла 'ztmpj-2.bat' со строками вида "
@rem
grep
"bistatic.*airborne SAR"
-i <dbcj\j-polarization_radar.csv >srch\j1-result2.csv
@rem ...
@rem
sed
"s/^\(.*\)$/sed \x22s\/grep -f temp\\\\tmpl\/grep \1\\x22\/\x22 <ztmpj-1.bat >temp\\zuc15/"
<temp\zuc11 >zuc14.bat
CALL zuc14.bat
sed
"s/result1/result2/;s/$/\r/"
<temp\zuc15 >ztmpj-2.bat
CALL ztmpj-2.bat
if
exist zuc14.bat del /Q zuc14.bat
@rem
@rem
"------------------------------------------- "
@rem
"4.3. Выборка строк. Вариант 3 "
@rem
@rem
"Извлекаются ВСЕ строки, содержащие словосочетания "
@rem
"'bistatic' И 'airborne' И 'SAR' "
@rem
"Результат выборки записывается в файл 'result3.csv' "
@rem
@rem
"--------------------------------- "
@rem
"Формирование файла 'temp\tmpl3' "
sed
"s/ /#/g"
<temp\tmpl >temp\zuc16
@rem
sed
-n
"H;${x;s/\n/#/g;p}"
<temp\zuc16 >temp\zuc17
@rem
sed
"s/$/\r/g"
<temp\zuc17 >temp\tmpl3
@rem
@rem
"--------------------------------- "
@rem
"Конференции "
@rem
"Формирования bat-файла 'ztmpc-3.bat' со строками вида "
@rem
grep
"bistatic.*airborne.*SAR"
-i <dbcj\c-polarization_radar.csv >srch\c1-result3.csv
@rem
sed
"s/^#/\\x22/"
<temp\tmpl3 >temp\zuc18
sed
"s/#/\.\*/g"
<temp\zuc18 >temp\zuc19
@rem
sed
"s/^\(.*\)$/sed \x22s\/grep -f temp\\\\tmpl\/grep \1\\x22\/\x22 <ztmpc-1.bat >temp\\zuc21/"
<temp\zuc19 >zuc20.bat
CALL zuc20.bat
sed
"s/result1/result3/;s/$/\r/"
<temp\zuc21 >ztmpc-3.bat
CALL ztmpc-3.bat
if
exist zuc20.bat del /Q zuc20.bat
@rem
@rem
"--------------------------------- "
@rem
"Журналы"
@rem
"Формирования bat-файла 'ztmpj-3.bat' со строками вида "
@rem
grep
"bistatic.*airborne.*SAR"
-i <dbcj\j-polarization_radar.csv >srch\j1-result3.csv
@rem ...
@rem
sed
"s/^\(.*\)$/sed \x22s\/grep -f temp\\\\tmpl\/grep \1\\x22\/\x22 <ztmpj-1.bat >temp\\zuc23/"
<temp\zuc11 >zuc22.bat
CALL zuc22.bat
sed
"s/result1/result3/;s/$/\r/"
<temp\zuc23 >ztmpj-3.bat
CALL ztmpj-3.bat
if
exist zuc22.bat del /Q zuc22.bat
@rem
@rem
"---------------------------------------------------------"
@rem
"5. Формирование csv-файлов в папке 'srch' "
@rem
"с результатами выборки "
@rem
echo
5. ”®а¬Ёа®ў ЁҐ csv-д ©«®ў ў Ї ЇЄҐ
'srch'
б १г«мв в ¬Ё ўлЎ®аЄЁ
nircmd wait 500
@rem
@rem
"------------------------------------------- "
@rem
"5.1. Удаление 'нулевых' результатов в папке 'srch' "
FOR %%F
in
(srch\*.csv) DO IF /i %%~zF EQU 0 DEL /f %%F
@rem
@rem
"------------------------------------------- "
@rem
"5.2. Формирование 'заголовков' к csv-файлам "
@rem
"с результатами поиска"
@rem
sed
-n
"H;${x;s/\n/#/g;p}"
<temp\tmpl >temp\zuc24
sed
"s/^#/''/"
<temp\zuc24 >temp\zuc25
sed
"s/#/'' �‹� ''/g"
<temp\zuc25 >temp\zuc26
sed
"s/$/''\r/"
<temp\zuc26 >temp\zuc27
@rem
sed
"s/^#/''/"
<temp\tmpl2 >temp\zuc28
sed
"s/#/'' � ''/g"
<temp\zuc28 >temp\zuc29
sed
"s/$/''\r/"
<temp\zuc29 >temp\zuc30
@rem
sed
"s/^#/''/"
<temp\tmpl3 >temp\zuc31
sed
"s/#/'' � ''/g"
<temp\zuc31 >temp\zuc32
sed
"s/$/''\r/"
<temp\zuc32 >temp\zuc33
@rem
@rem
"------------------------------------------- "
@rem
"5.3. Формирование csv-файлов с результатами выборки "
@rem
"с 'заголовками' "
@rem
ls
srch\*.csv >temp\zuc34
@rem
@rem
"--------------------------------- "
@rem
"5.3.1. Конференции "
@rem
sed
"/\\c/!d"
<temp\zuc34 >temp\zuc35
@rem
set
Size=0
set
Files=temp\zuc35
for
%%F
in
(%Files%)
do
if
/i %%~zF EQU %Size% del /f %%F
@rem
if
not exist temp\zuc35 goto MC2
@rem
@rem
"5.3.1.1. Вставка заголовка 'header-с' в csv-файлы "
@rem
FOR /F
"delims="
%%i IN (temp\zuc35) DO (
echo
%%i>temp\zuc36
sed
"s/^\(.*\)$/cat auxs\\header-c\.txt \1 >temp\\zuc38/"
<temp\zuc36 >zuc37.bat
CALL zuc37.bat
sed
"s/^\(.*\)$/copy \/Y temp\\zuc38 \1 >null/"
<temp\zuc36 >zuc39.bat
CALL zuc39.bat
)
@rem
@rem
"5.3.1.2. Вставка дополнительной информации в csv-файлы "
@rem
cat
temp\zuc27 temp\zuc30 temp\zuc33 >temp\zuc40
sed
= temp\zuc40 |
sed
"N;s/\n/\t/"
>temp\zuc41
@rem
FOR /F
"delims="
%%i IN (temp\zuc35) DO (
echo
%%i>temp\zuc42
cut
-f1 -d- <temp\zuc42 >temp\zuc43
tr
-d
" [:alpha:][:punct:]"
<temp\zuc43 >temp\zuc44
sed
"s/$/\t\r/"
<temp\zuc44 >temp\zuc45
fgrep
-f temp\zuc45 <temp\zuc03 >temp\zuc46
cut
-f2 -d\ <temp\zuc46 >temp\zuc47
sed
"s/^\(.*\)$/''\1''\r/"
<temp\zuc47 >temp\zuc48
cut
-f2 -d- <temp\zuc42 >temp\zuc49
tr
-d
" [:alpha:][:punct:]"
<temp\zuc49 >temp\zuc50
sed
"s/$/\t\r/"
<temp\zuc50 >temp\zuc51
fgrep
-f temp\zuc51 <temp\zuc41 >temp\zuc52
cut
-f2 <temp\zuc52 >temp\zuc53
paste
temp\zuc48 temp\zuc53 >temp\zuc54
sed
"s/^/1iђҐ§г«мв в ўлЎ®аЄЁ ў Ѓ„ /"
<temp\zuc54 >temp\zuc55
sed
"s/\t/ ЁбЄ®¬®Ј® б«®ў®б®зҐв Ёп: /"
<temp\zuc55 >temp\zuc56
sed
"s/$/\r/"
<temp\zuc56 >temp\zuc57.
sed
sed
"s/^\(.*\)$/sed -i -f temp\\zuc57.sed \1\r/"
<temp\zuc42 >zuc58.bat
CALL zuc58.bat
)
@rem
@rem
"--------------------------------- "
@rem
"5.3.2. Журналы "
@rem
sed
"/\\j/!d"
<temp\zuc34 >temp\zuc60
@rem
set
Size=0
set
Files=temp\zuc60
for
%%F
in
(%Files%)
do
if
/i %%~zF EQU %Size% del /f %%F
@rem
if
not exist temp\zuc60 goto MC2
@rem
@rem
"5.3.2.1. Вставка заголовка 'header-j' в csv-файлы "
@rem
FOR /F
"delims="
%%i IN (temp\zuc60) DO (
echo
%%i>temp\zuc61
sed
"s/^\(.*\)$/cat auxs\\header-j\.txt \1 >temp\\zuc63/"
<temp\zuc61 >zuc62.bat
CALL zuc62.bat
sed
"s/^\(.*\)$/copy \/Y temp\\zuc63 \1 >null/"
<temp\zuc61 >zuc64.bat
CALL zuc64.bat
)
@rem
@rem
"5.3.2.2. Вставка дополнительной информации в csv-файлы "
@rem
FOR /F
"delims="
%%i IN (temp\zuc60) DO (
echo
%%i>temp\zuc65
cut
-f1 -d- <temp\zuc65 >temp\zuc66
tr
-d
" [:alpha:][:punct:]"
<temp\zuc66 >temp\zuc67
sed
"s/$/\t\r/"
<temp\zuc67 >temp\zuc68
fgrep
-f temp\zuc68 <temp\zuc07 >temp\zuc69
cut
-f2 -d\ <temp\zuc69 >temp\zuc70
sed
"s/^\(.*\)$/''\1''\r/"
<temp\zuc70 >temp\zuc71
cut
-f2 -d- <temp\zuc65 >temp\zuc72
tr
-d
" [:alpha:][:punct:]"
<temp\zuc72 >temp\zuc73
sed
"s/$/\t\r/"
<temp\zuc73 >temp\zuc74
fgrep
-f temp\zuc74 <temp\zuc41 >temp\zuc75
cut
-f2 <temp\zuc75 >temp\zuc76
paste
temp\zuc71 temp\zuc76 >temp\zuc77
sed
"s/^/1iђҐ§г«мв в ўлЎ®аЄЁ ў Ѓ„ /"
<temp\zuc77 >temp\zuc78
sed
"s/\t/ ЁбЄ®¬®Ј® б«®ў®б®зҐв Ёп: /"
<temp\zuc78 >temp\zuc79
sed
"s/$/\r/"
<temp\zuc79 >temp\zuc80.
sed
sed
"s/^\(.*\)$/sed -i -f temp\\zuc80.sed \1\r/"
<temp\zuc65 >zuc81.bat
CALL zuc81.bat
)
@rem
:MJ2
@rem
@rem
"---------------------------------------------------------"
:CLEAN
@rem
"6. Очистка "
echo
6. ЋзЁбвЄ
nircmd wait 500
@rem
if
exist null del /Q null
if
exist ztmpc-*.bat del /Q ztmpc-*.bat
if
exist ztmpj-*.bat del /Q ztmpj-*.bat
if
exist zuc*.bat del /Q zuc*.bat
if
exist temp\*.* del /Q temp\*.*
@rem
@rem
"---------------------------------------------------------"
:END