@Echo offcls@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. Удаляем предыдущие результаты"@remecho 1. “¤ «ҐЁҐ ЇаҐ¤л¤гйЁе १г«мв в®ўnircmd wait 500@remif exist srch\*result*.csv del /Q srch\*result*.csv@remif exist temp\*.* del /Q temp\*.*@remif not exist temp mkdir tempif not exist srch mkdir srch@rem@rem "---------------------------------------------------------"@rem "2. Проверяем наличие файлов БД в папке 'dbcj' "@rem "(Если файлов нет, то выходим из обработки) "@remecho 2. Џа®ўҐаЄ «ЁзЁп csv-д ©«®ў Ў § ¤ ле ў Ї ЇЄҐ 'dbcj'nircmd wait 500@remls dbcj\*.csv >temp\zuc01@remset Size=0set Files=temp\zuc01for %%F in (%Files%) do if /i %%~zF EQU %Size% del /f %%F@remif 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\zuc02set Size=0set Files=temp\zuc02for %%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\zuc03cut -f2 <temp\zuc03 >temp\zuc04sed "s/^\(.*\)$/grep -f temp\\tmpl -i <\1\ >srch\\c/" <temp\zuc04 >temp\zuc04-1cut -f1 <temp\zuc03 >temp\zuc04-2paste temp\zuc04-1 temp\zuc04-2 >temp\zuc05sed "s/\t//;s/$/-result1\.csv\r/" <temp\zuc05 >ztmpc-1.batif 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\zuc06set Size=0set Files=temp\zuc06for %%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\zuc07cut -f2 <temp\zuc07 >temp\zuc08sed "s/^\(.*\)$/grep -f temp\\tmpl -i <\1\ >srch\\j/" <temp\zuc08 >temp\zuc08-1cut -f1 <temp\zuc07 >temp\zuc08-2paste temp\zuc08-1 temp\zuc08-2 >temp\zuc09sed "s/\t//;s/$/-result1\.csv\r/" <temp\zuc09 >ztmpj-1.batif 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@remsed "s/^#/\\x22/" <temp\tmpl2 >temp\zuc10sed "s/#/\.\*/" <temp\zuc10 >temp\zuc11@remsed "s/^\(.*\)$/sed \x22s\/grep -f temp\\\\tmpl\/grep \1\\x22\/\x22 <ztmpc-1.bat >temp\\zuc13/" <temp\zuc11 >zuc12.batCALL zuc12.batsed "s/result1/result2/;s/$/\r/" <temp\zuc13 >ztmpc-2.batCALL ztmpc-2.batif 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.batCALL zuc14.batsed "s/result1/result2/;s/$/\r/" <temp\zuc15 >ztmpj-2.batCALL ztmpj-2.batif 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@remsed -n "H;${x;s/\n/#/g;p}" <temp\zuc16 >temp\zuc17@remsed "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@remsed "s/^#/\\x22/" <temp\tmpl3 >temp\zuc18sed "s/#/\.\*/g" <temp\zuc18 >temp\zuc19@remsed "s/^\(.*\)$/sed \x22s\/grep -f temp\\\\tmpl\/grep \1\\x22\/\x22 <ztmpc-1.bat >temp\\zuc21/" <temp\zuc19 >zuc20.batCALL zuc20.batsed "s/result1/result3/;s/$/\r/" <temp\zuc21 >ztmpc-3.batCALL ztmpc-3.batif 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.batCALL zuc22.batsed "s/result1/result3/;s/$/\r/" <temp\zuc23 >ztmpj-3.batCALL ztmpj-3.batif 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 "с результатами поиска"@remsed -n "H;${x;s/\n/#/g;p}" <temp\tmpl >temp\zuc24sed "s/^#/''/" <temp\zuc24 >temp\zuc25sed "s/#/'' �‹� ''/g" <temp\zuc25 >temp\zuc26sed "s/$/''\r/" <temp\zuc26 >temp\zuc27@rem sed "s/^#/''/" <temp\tmpl2 >temp\zuc28sed "s/#/'' � ''/g" <temp\zuc28 >temp\zuc29sed "s/$/''\r/" <temp\zuc29 >temp\zuc30@rem sed "s/^#/''/" <temp\tmpl3 >temp\zuc31sed "s/#/'' � ''/g" <temp\zuc31 >temp\zuc32sed "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=0set Files=temp\zuc35for %%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\zuc36sed "s/^\(.*\)$/cat auxs\\header-c\.txt \1 >temp\\zuc38/" <temp\zuc36 >zuc37.batCALL zuc37.batsed "s/^\(.*\)$/copy \/Y temp\\zuc38 \1 >null/" <temp\zuc36 >zuc39.batCALL zuc39.bat)@rem @rem "5.3.1.2. Вставка дополнительной информации в csv-файлы "@rem cat temp\zuc27 temp\zuc30 temp\zuc33 >temp\zuc40sed = temp\zuc40 | sed "N;s/\n/\t/" >temp\zuc41@rem FOR /F "delims=" %%i IN (temp\zuc35) DO (echo %%i>temp\zuc42cut -f1 -d- <temp\zuc42 >temp\zuc43tr -d " [:alpha:][:punct:]" <temp\zuc43 >temp\zuc44sed "s/$/\t\r/" <temp\zuc44 >temp\zuc45fgrep -f temp\zuc45 <temp\zuc03 >temp\zuc46cut -f2 -d\ <temp\zuc46 >temp\zuc47sed "s/^\(.*\)$/''\1''\r/" <temp\zuc47 >temp\zuc48cut -f2 -d- <temp\zuc42 >temp\zuc49tr -d " [:alpha:][:punct:]" <temp\zuc49 >temp\zuc50sed "s/$/\t\r/" <temp\zuc50 >temp\zuc51fgrep -f temp\zuc51 <temp\zuc41 >temp\zuc52cut -f2 <temp\zuc52 >temp\zuc53paste temp\zuc48 temp\zuc53 >temp\zuc54sed "s/^/1iђҐ§г«мв в ўлЎ®аЄЁ ў Ѓ„ /" <temp\zuc54 >temp\zuc55sed "s/\t/ ЁбЄ®¬®Ј® б«®ў®б®зҐв Ёп: /" <temp\zuc55 >temp\zuc56sed "s/$/\r/" <temp\zuc56 >temp\zuc57.sedsed "s/^\(.*\)$/sed -i -f temp\\zuc57.sed \1\r/" <temp\zuc42 >zuc58.batCALL zuc58.bat)@rem @rem "--------------------------------- "@rem "5.3.2. Журналы "@rem sed "/\\j/!d" <temp\zuc34 >temp\zuc60@rem set Size=0set Files=temp\zuc60for %%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\zuc61sed "s/^\(.*\)$/cat auxs\\header-j\.txt \1 >temp\\zuc63/" <temp\zuc61 >zuc62.batCALL zuc62.batsed "s/^\(.*\)$/copy \/Y temp\\zuc63 \1 >null/" <temp\zuc61 >zuc64.batCALL zuc64.bat)@rem @rem "5.3.2.2. Вставка дополнительной информации в csv-файлы "@rem FOR /F "delims=" %%i IN (temp\zuc60) DO (echo %%i>temp\zuc65cut -f1 -d- <temp\zuc65 >temp\zuc66tr -d " [:alpha:][:punct:]" <temp\zuc66 >temp\zuc67sed "s/$/\t\r/" <temp\zuc67 >temp\zuc68fgrep -f temp\zuc68 <temp\zuc07 >temp\zuc69cut -f2 -d\ <temp\zuc69 >temp\zuc70sed "s/^\(.*\)$/''\1''\r/" <temp\zuc70 >temp\zuc71cut -f2 -d- <temp\zuc65 >temp\zuc72tr -d " [:alpha:][:punct:]" <temp\zuc72 >temp\zuc73sed "s/$/\t\r/" <temp\zuc73 >temp\zuc74fgrep -f temp\zuc74 <temp\zuc41 >temp\zuc75cut -f2 <temp\zuc75 >temp\zuc76paste temp\zuc71 temp\zuc76 >temp\zuc77sed "s/^/1iђҐ§г«мв в ўлЎ®аЄЁ ў Ѓ„ /" <temp\zuc77 >temp\zuc78sed "s/\t/ ЁбЄ®¬®Ј® б«®ў®б®зҐв Ёп: /" <temp\zuc78 >temp\zuc79sed "s/$/\r/" <temp\zuc79 >temp\zuc80.sedsed "s/^\(.*\)$/sed -i -f temp\\zuc80.sed \1\r/" <temp\zuc65 >zuc81.batCALL zuc81.bat)@rem :MJ2@rem @rem "---------------------------------------------------------":CLEAN@rem "6. Очистка "echo 6. ЋзЁбвЄ nircmd wait 500@rem if exist null del /Q nullif exist ztmpc-*.bat del /Q ztmpc-*.batif exist ztmpj-*.bat del /Q ztmpj-*.batif exist zuc*.bat del /Q zuc*.batif exist temp\*.* del /Q temp\*.*@rem @rem "---------------------------------------------------------":END