win -> dos
Здравствуйте debian-russian, Имеется куча каталогов и в них куча подкаталогов. В каждом каталоге присутствует файл 1.txt, который содержит описание графических файлов находящихся в данном каталоге. Изначально было создано все в W2k, а теперь переносим под Woody 3.0 на ftp сервер. Необходимо все текстовые файлы конвертировать из win в dos, чтоб можно было искать в них описания (пока ищем в far'e, он по ftp хорошо понимает dos-ую кодировку). Есть идея - сканировать раз в сутки все *.txt файлы и делать из них один большой текстовый файл, а уже в нем искать описания. Как это сделать проще? (файл типа: путь к файлу на диске. текстовое содержание файла. путь к файлу на диске. текстовое содержание файла. ...) -- С Уважением, Комаров Алексей mailto:[EMAIL PROTECTED]
Re: win -> dos
On Mon, Apr 21, 2003 at 02:45:32PM +0400, Комаров Алексей wrote: > Здравствуйте debian-russian, > > Имеется куча каталогов и в них куча подкаталогов. В каждом каталоге > присутствует файл 1.txt, который содержит описание графических > файлов находящихся в данном каталоге. > Изначально было создано все в W2k, а теперь переносим под Woody 3.0 > на ftp сервер. > Необходимо все текстовые файлы конвертировать из win в dos, чтоб > можно было искать в них описания (пока ищем в far'e, он по ftp > хорошо понимает dos-ую кодировку). > > Есть идея - сканировать раз в сутки все *.txt файлы и делать из них > один большой текстовый файл, а уже в нем искать описания. Как это > сделать проще? > (файл типа: > путь к файлу на диске. > текстовое содержание файла. Ээ.. ну типа совсем не сложно написать скрипт на баше, который будет пробегать по дереву каталогов и конвертировать некоторые файлы из одной кодировки в другую. Я например люблю конвертировать с помощью утилиты enca.. Но это конечно, если все на локальном компутере... > > путь к файлу на диске. > текстовое содержание файла. > > ...) > > -- > С Уважением, > Комаров Алексей mailto:[EMAIL PROTECTED] > > > -- > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] > -- Gerasimov Dmitry e-mail: matrix AT podlipki DOT ru
Re: win -> dos
В Пнд, 21.04.2003, в 16:45, Комаров Алексей пишет: > Здравствуйте debian-russian, > > Имеется куча каталогов и в них куча подкаталогов. В каждом каталоге > присутствует файл 1.txt, который содержит описание графических > файлов находящихся в данном каталоге. > Изначально было создано все в W2k, а теперь переносим под Woody 3.0 > на ftp сервер. > Необходимо все текстовые файлы конвертировать из win в dos, чтоб > можно было искать в них описания (пока ищем в far'e, он по ftp > хорошо понимает dos-ую кодировку). > > Есть идея - сканировать раз в сутки все *.txt файлы и делать из них > один большой текстовый файл, а уже в нем искать описания. Как это > сделать проще? for i in */*/*; do cat $i | xcode -a +w > $i.new && mv -f $i.net $i ; done Потянет? > (файл типа: > путь к файлу на диске. > текстовое содержание файла. > > путь к файлу на диске. > текстовое содержание файла. > > ...) > > -- > С Уважением, > Комаров Алексей mailto:[EMAIL PROTECTED] -- - echo '16i[q]sa[ln0=aln100%Pln100/snlbx]sb20293A2058554E494Csnlbxq'|dc Best Regardsmailto:[EMAIL PROTECTED] Mokeev Sergey http://sux.csu.ac.ru/ ICQ UIN:168860082 // xcode.C (formerly auto2unix.cc) // This program tries to determine input document encoding // and to convert it to koi8, CP-1251 or cp866. // Written by Andrey V. Lukyanov on May 14, 1997 // Last modified on May 18, 1997 // Updated to convert to /don't kill me/ cp1251 (oh, god! I hate it!) // instead of KOI-8 (original) // by Cyril Rotmistrovsky // Updated to make conversions to cp1251, cp866 and koi8-r (default) // depending on flags // by Cyril Rotmistrovsky // Modified on Oct 19, 1997 // Modified by Cyril Rotmistrovsky to be compiled by Watcom C++ 10.0 // (Oh, God! what a non-standard compiler!) // Last modified on Jun 18 1998 // Modified by Igor V. Krassikov (KIV without Co) // for quoted-printable decodeing // Name changed to xcode #include #include #include #include #include #ifndef KOI8_WIN #define KOI8_WIN \ "\x94\x83\xaa\x8f\x90\xa9\x93\x84\x92\x91\x95\xaf\xac\xab\xad\xae" \ "\x80\x81\x82\xb4\xbe\xb9\xbb\xb7\xb3\xb2\xbf\xb5\xb8\xbd\xba\xb6" \ "\x9d\x8a\xa5\xb1\xa6\x99\x88\x87\x8b\xa4\xa3\x98\x8e\x8d\x8c\x96" \ "\x97\x9c\x85\xb0\x86\x89\xa1\xa2\x9b\x9f\xa0\x9a\xa8\xa7\x9e\xbc" \ "\xfe\xe0\xe1\xf6\xe4\xe5\xf4\xe3\xf5\xe8\xe9\xea\xeb\xec\xed\xee" \ "\xef\xff\xf0\xf1\xf2\xf3\xe6\xe2\xfc\xfb\xe7\xf8\xfd\xf9\xf7\xfa" \ "\xde\xc0\xc1\xd6\xc4\xc5\xd4\xc3\xd5\xc8\xc9\xca\xcb\xcc\xcd\xce" \ "\xcf\xdf\xd0\xd1\xd2\xd3\xc6\xc2\xdc\xdb\xc7\xd8\xdd\xd9\xd7\xda" #endif #ifndef KOI8_ALT #define KOI8_ALT \ "\xc4\xb3\xda\xbf\xc0\xd9\xc3\xb4" \ "\xc2\xc1\xc5\xdf\xdc\xdb\xdd\xde" \ "\xb0\xb1\xb2\xf4\xfe\xf9\xfb\xf7" \ "\xf3\xf2\xff\xf5\xf8\xfd\xfa\xf6" \ "\xcd\xba\xd5\xf1\xd6\xc9\xb8\xb7" \ "\xbb\xd4\xd3\xc8\xbe\xbd\xbc\xc6" \ "\xc7\xcc\xb5\xf0\xb6\xb9\xd1\xd2" \ "\xcb\xcf\xd0\xca\xd8\xd7\xce\xfc" \ "\xee\xa0\xa1\xe6\xa4\xa5\xe4\xa3" \ "\xe5\xa8\xa9\xaa\xab\xac\xad\xae" \ "\xaf\xef\xe0\xe1\xe2\xe3\xa6\xa2" \ "\xec\xeb\xa7\xe8\xed\xe9\xe7\xea" \ "\x9e\x80\x81\x96\x84\x85\x94\x83" \ "\x95\x88\x89\x8a\x8b\x8c\x48\x8e" \ "\x8f\x9f\x90\x91\x92\x93\x86\x82" \ "\x9c\x9b\x87\x98\x9d\x99\x97\x9a" #endif #define NUMCOD 5 unsigned char* destTab[]={ (unsigned char *)KOI8_ALT, (unsigned char *)KOI8_WIN }; char * help[]={ "This program tries to determine input document encoding\n", "and to convert it to desired one\n", "\n", "Written by Andrey V. Lukyanov on May 14, 1997 " "Last modified on May 18, 1997\n", "Updated by Cyril Rotmistrovsky " "Last modified on Oct 19, 1997\n", "Updated by Igor V. Krassikov " "Last modified on Oct 29, 1998\n", "\n", "Usage: %s [-h|-H|-?] [-w|-k|-a] [+w|+k|+a|+i|+m] [-q] " "[input [output]]\n", "-q to disable quoted-pritable decoding\n", "-k to set koi8 output\n", "-w to set cp1251output\n", "-a to set cp866 output(default)\n", "+k to force koi8 input\n", "+w to force cp1251input\n", "+a to force cp866 input\n", "+i to force iso8859-5 input\n", "+m to force mac input\n", 0 }; char * encName[]={"koi8","cp866","cp1251","iso8859-5","mac"}; unsigned char recode_table[NUMCOD][128]={ { //koi8 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, 160,161,162,163,164,165,166,167,168,169,170,171,172,'-',174,175, 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 }, { //dos 225,226,247,231,228,229,246,2
Re: win -> dos
Evening, Sergey. Sergey <[EMAIL PROTECTED]> 17:09 21/4/2003 wrote: >> >> Есть идея - сканировать раз в сутки все *.txt файлы и делать из них >> один большой текстовый файл, а уже в нем искать описания. Как это >> сделать проще? S> for i in */*/*; do cat $i | xcode -a +w > $i.new && mv -f $i.net $i ; S> done Потянет? Потянет на "This week's most useless use of cat" :) for i in `find . -type f -name '*.txt'` ; do xcode -a +w < "$i" > "$i.new" && mv -f "$i.new" "$i" ; done -- Dmitry Astapov //ADEpt E-mail: [EMAIL PROTECTED] GPG KeyID/fprint: F5D7639D/CA36 E6C4 815D 434D 0498 2B08 7867 4860 F5D7 639D
Re: win -> dos
Привет, коллеги. On Mon, Apr 21, 2003 at 05:15:06PM +0300, Dmitry Astapov wrote: > for i in `find . -type f -name '*.txt'` ; do xcode -a +w < "$i" > "$i.new" && > mv -f "$i.new" "$i" ; done Массовые перекодировки можно делать через konwert ... $ find . -type f -name \*\.txt|xargs konwert cp1251-koi8r -O > Dmitry Astapov //ADEpt E-mail: [EMAIL PROTECTED] > GPG KeyID/fprint: F5D7639D/CA36 E6C4 815D 434D 0498 2B08 7867 4860 F5D7 639D Auf Wiederlesenophil aka Д-р Антикоммуний -- Oleg P. Philon http://gomelug.agava.ru/articles Linux Lab, Gomel, Belarus mailto:[EMAIL PROTECTED] http://anticommunist.narod.ru mailto:[EMAIL PROTECTED]
Re: win -> dos
В сообщении от 21 Апрель 2003 20:15 Dmitry Astapov написал: > Evening, Sergey. > > Sergey <[EMAIL PROTECTED]> 17:09 21/4/2003 wrote: > >> Есть идея - сканировать раз в сутки все *.txt файлы и делать из них > >> один большой текстовый файл, а уже в нем искать описания. Как это > >> сделать проще? > > S> for i in */*/*; do cat $i | xcode -a +w > $i.new && mv -f $i.net $i ; > S> done Потянет? > > Потянет на "This week's most useless use of cat" :) > > for i in `find . -type f -name '*.txt'` ; do xcode -a +w < "$i" > "$i.new" > && mv -f "$i.new" "$i" ; done у обеих вариантах есть один недостаток --- перекодированный файл тоже будет с суфиксом .txt и при повторном запуске скрипта (например на следующие сутки, как предполагает автор треда) он снова будет перекодирован. я не уверет, что это именно то чего хотел автор... ТЕ ЭТОТ СКРИПТ НУЖНО ЗАПУСКАТЬ ТОЛЬКО ОДИН РАЗ или делать for i in `find . -type f -name '*.txt'` ; do xcode -a +w < "$i" > "$i.dos"; done в этом случае в файлах txt будет оригинальное описание в виндовой кодировке, а в .txt.dos --- перекодированное в cp866
Re[2]: win -> dos
Hello Sergey, Вы писали 21 апреля 2003 г., 15:09:32: >> Необходимо все текстовые файлы конвертировать из win в dos, чтоб >> можно было искать в них описания (пока ищем в far'e, он по ftp >> хорошо понимает dos-ую кодировку). >> >> Есть идея - сканировать раз в сутки все *.txt файлы и делать из них >> один большой текстовый файл, а уже в нем искать описания. Как это >> сделать проще? S> for i in */*/*; do cat $i | xcode -a +w > $i.new && mv -f $i.net $i ; done S> Потянет? Как тяжело с сознанием M$ осваивать безграничность Linux... в одиночку ... В общем, огромное спасибочки. -- С Уважением, Комаров Алексей mailto:[EMAIL PROTECTED]
Re[2]: win -> dos
Hello Dimitry, Вы писали 22 апреля 2003 г., 8:18:36: DNN> В сообщении от 21 Апрель 2003 20:15 Dmitry Astapov написал: >> Evening, Sergey. >> >> Sergey <[EMAIL PROTECTED]> 17:09 21/4/2003 wrote: >> >> Есть идея - сканировать раз в сутки все *.txt файлы и делать из них >> >> один большой текстовый файл, а уже в нем искать описания. Как это >> >> сделать проще? >> >> S> for i in */*/*; do cat $i | xcode -a +w > $i.new && mv -f $i.net $i ; >> S> done Потянет? >> >> Потянет на "This week's most useless use of cat" :) >> >> for i in `find . -type f -name '*.txt'` ; do xcode -a +w < "$i" > "$i.new" >> && mv -f "$i.new" "$i" ; done DNN> у обеих вариантах есть один недостаток --- перекодированный файл тоже будет с DNN> суфиксом .txt и при повторном запуске скрипта (например на следующие сутки, DNN> как предполагает автор треда) он снова будет перекодирован. я не уверет, что DNN> это именно то чего хотел автор... ТЕ ЭТОТ СКРИПТ НУЖНО ЗАПУСКАТЬ ТОЛЬКО ОДИН DNN> РАЗ или делать DNN> for i in `find . -type f -name '*.txt'` ; do xcode -a +w < "$i" > "$i.dos"; DNN> done DNN> в этом случае в файлах txt будет оригинальное описание в виндовой кодировке, а DNN> в .txt.dos --- перекодированное в cp866 Огромное спасибо за это уточнение! На самом деле оригинальная кодировка уже не нужна будет, поэтому оригинал я буду удалять. Еще раз всем спасибо. -- С Уважением, Комаров Алексей mailto:[EMAIL PROTECTED]