Nokia Internet Tablet N8XX     

Ответы на вопросы о таблетках

  • Вы не зашли.

#26 21-06-2008 13:25:23

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1098
Thanks :   64 
Firefox 

Re: Проблема с именем файлов в FBReader

Разобрались? Ну и отлично. Сейчас покажу как запаковать.


Nokia 770/IT 2006, N810

Неактивен

 

#27 21-06-2008 13:34:08

alex2ndr  
Таблетоид
На форуме с: 15-04-2008
Сообщений: 55
Thanks :   
Iceweasel 

Re: Проблема с именем файлов в FBReader

PS: Не знаю что я делаю не так, но после создания out ваш скрипт не ругается, но ничего и не делает. Его результат - копия in в out.

мне кажется у Вас такая же проблема с -iname "*[а-я]*" - если закоментить эту часть он так и работает


Nokia N800 OS 2.2007.51.3 / Nokia 3110 Classic / Debian Etch r3

Неактивен

 

#28 21-06-2008 13:42:53

alex2ndr  
Таблетоид
На форуме с: 15-04-2008
Сообщений: 55
Thanks :   
Iceweasel 

Re: Проблема с именем файлов в FBReader

разобрался до конца с вашим скриптом - надо было ручками переписать эту часть - iname "*[а-я]*.zip" - теперь работает так же как у Вас. Это называется не копипастите с сайтов smile


Nokia N800 OS 2.2007.51.3 / Nokia 3110 Classic / Debian Etch r3

Неактивен

 

#29 21-06-2008 13:49:20

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1098
Thanks :   64 
Firefox 

Re: Проблема с именем файлов в FBReader

Вот с запаковкой вариант:
cp -r in out
find ./out/ -type f -iname '*[а-я]*.zip' | while read fn ; do
        newfn="`echo $fn | sed -e 's/\.zip$/.txt/'`"
        unzip -p "$fn" > "$newfn"
        zip -D "$fn" "$newfn"
        rm "$newfn"
done


Nokia 770/IT 2006, N810

Неактивен

 

#30 21-06-2008 14:00:22

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1098
Thanks :   64 
Firefox 

Re: Проблема с именем файлов в FBReader

Вот немного получше:

Код:

cp -r in out
find ./out/ -type f -iname '*[а-я]*.zip' | while read fn ; do
        newfn="`echo $fn | sed -e 's/\.zip$/.txt/'`"
        unzip -p "$fn" > "$newfn"
        zip - "$newfn" > "$fn"
        rm "$newfn"
done

Осталась одна небольшая проблема - он пишет путь в архив. Если вас это смущает, то можно и это убрать.


Nokia 770/IT 2006, N810

Неактивен

 

#31 21-06-2008 14:01:21

alex2ndr  
Таблетоид
На форуме с: 15-04-2008
Сообщений: 55
Thanks :   
Iceweasel 

Re: Проблема с именем файлов в FBReader

хмы - направление конечно верное - тока есть одна сложность- он этот новый файл добавляет архив вместе с новым файлом - а заобно и путь туда загоняет

Но все равно спасибо - завтра дорихтую


Nokia N800 OS 2.2007.51.3 / Nokia 3110 Classic / Debian Etch r3

Неактивен

 

#32 21-06-2008 14:08:19

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1098
Thanks :   64 
Firefox 

Re: Проблема с именем файлов в FBReader

Последний вариант не должен. Видимо мы с вами одновременно постили и вы его не видели.


Nokia 770/IT 2006, N810

Неактивен

 

#33 21-06-2008 14:10:10

alex2ndr  
Таблетоид
На форуме с: 15-04-2008
Сообщений: 55
Thanks :   
Iceweasel 

Re: Проблема с именем файлов в FBReader

интересно получается - если в корень добавить пару нужных для конвертации файликов (например скопировать из какого нить каталога) - то ваш скрипт как то странно на них отрабатывает - но с файлами что идут в каталогах с именами авторов работает вполне нормально

А путь конечно надо убрать - неудобно в FBreader щелкать этот путь дважды - тем более на таблетке

Да - последний вариант затирает старый файл

Отредактированно alex2ndr (21-06-2008 14:14:12)


Nokia N800 OS 2.2007.51.3 / Nokia 3110 Classic / Debian Etch r3

Неактивен

 

#34 21-06-2008 14:21:10

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1098
Thanks :   64 
Firefox 

Re: Проблема с именем файлов в FBReader

С убиранием пути:

Код:

cp -r in out
find ./out/ -type f -iname '*[а-я]*.zip' | while read fn ; do
        newfn="`echo $fn | sed -e 's/\.zip$/.txt/'`"
        unzip -p "$fn" > "$newfn"
        cdir=`pwd`
        cd "$(dirname "$fn")"
        zip - "$(basename "$newfn")" > "$(basename "$fn")"
        cd "$cdir"
        rm "$newfn"
done

Остальное не понял. С чего ему работать с файлами из корня, когда он обрабатывает только zip файлы с русскими именами из in?


Nokia 770/IT 2006, N810

Неактивен

 

#35 22-06-2008 01:13:20

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1098
Thanks :   64 
Firefox 

Re: Проблема с именем файлов в FBReader

Вот покороче и без выкрутасов. Почитал man по zip smile

Код:

cp -r in out
find ./out/ -type f -iname '*[а-я]*.zip' | while read fn ; do
        newfn="`echo $fn | sed -e 's/\.zip$/.txt/'`"
        unzip -p "$fn" > "$newfn"
        zip -mj - "$newfn" > "$fn"
done

Кстати, после отладки можно будет убрать out и перепаковывать прям по месту, в in. Для этого нужно будет убрать копирование и заменить ./oút на ./in в строке find. А еще лучше сделать имя обрабатываемого каталога параметром, по умолчанию - текущий каталог.


Nokia 770/IT 2006, N810

Неактивен

 

#36 22-06-2008 02:24:02

alex2ndr  
Таблетоид
На форуме с: 15-04-2008
Сообщений: 55
Thanks :   
Iceweasel 

Re: Проблема с именем файлов в FBReader

2Wall
поздно прочитал последнее Ваше сообщение - к этому времени уже доработал Ваш предыдущий скрипт до нужного мне функционала(и во время написания вами поста уже тестил его вовсю) -

Код:

#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

cp -r in/* out
find ./out/ -type f -iname "*[а-я]*.zip" | while read fn ; do
        tmpname=`basename "$fn" | sed -e 's/\.zip//'`
        # Утилита uniconv находиться в пакете yudit
        transname=`echo $tmpname | sed -e 's/–/_/g;s/ /_/g;s/-/_/g' | uniconv -encode Russian-Translit | sed -e 's/://g;s/"//g'`
        # Выведем новое имя для визуальной проверки
        echo "$tmpname = $transname" >> ./log_name.txt
        fullnm="`dirname "$fn"`/$transname.txt"
        unzip -p "$fn" > "$fullnm"
        cdir=`pwd`
        cd "$(dirname "$fn")"
        zip - "$transname.txt" > "$transname.zip"
        cd "$cdir"
        rm "$fullnm"
        rm "$fn"
done
exit 0

насчет параметра считаю заморачиваться не стоит - скрипт нужен по сути один раз - насчет in и out - тоже самое - только из любви к искусству smile

Задача нужная мне ВЫПОЛНЕНА - Всем спасибо за помощь и советы

PS Всем кому нужен этот скрипт(или подобная функциональность) - пользуйтесь smile

Отредактированно alex2ndr (22-06-2008 02:25:54)


Nokia N800 OS 2.2007.51.3 / Nokia 3110 Classic / Debian Etch r3

Неактивен

 

#37 22-06-2008 02:29:39

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1098
Thanks :   64 
Firefox 

Re: Проблема с именем файлов в FBReader

Я бы убрал выкрутасы с cd. zip -mj гораздо приятнее, короче и безопаснее.


Nokia 770/IT 2006, N810

Неактивен

 

#38 22-06-2008 02:45:49

alex2ndr  
Таблетоид
На форуме с: 15-04-2008
Сообщений: 55
Thanks :   
Iceweasel 

Re: Проблема с именем файлов в FBReader

Ради тренировки доделал скрипт. Окончательная версия(если еще оптимизаторы не набегут smile ):

Код:

#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

cp -r in/* out
find ./out/ -type f -iname "*[а-я]*.zip" | while read fn ; do
        tmpname=`basename "$fn" | sed -e 's/\.zip//'`
        # Утилита uniconv находиться в пакете yudit - для работы этого скрипта данный пакет должен стоять
        transname=`echo $tmpname | sed -e 's/–/_/g;s/ /_/g;s/-/_/g' | uniconv -encode Russian-Translit | sed -e 's/://g;s/"//g'`
        fullnm="`dirname "$fn"`/$transname.txt"
        unzip -p "$fn" > "$fullnm"
        zip -mj - "$fullnm" > "`echo $fullnm | sed -e 's/\.txt/\.zip/'`"
        rm "$fn"
done
exit 0

Nokia N800 OS 2.2007.51.3 / Nokia 3110 Classic / Debian Etch r3

Неактивен

 

#39 22-06-2008 02:47:52

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1098
Thanks :   64 
Firefox 

Re: Проблема с именем файлов в FBReader

Красота smile А PATH зачем устанавливать?


Nokia 770/IT 2006, N810

Неактивен

 

#40 22-06-2008 02:51:30

alex2ndr  
Таблетоид
На форуме с: 15-04-2008
Сообщений: 55
Thanks :   
Iceweasel 

Re: Проблема с именем файлов в FBReader

А PATH зачем устанавливать?

да были у меня один раз грабли с тем что команды не хотели находиться - перенес скрипт на другую машину а там PATH другой - с тех пор я его всегда добавляю - на всякий случай smile


Nokia N800 OS 2.2007.51.3 / Nokia 3110 Classic / Debian Etch r3

Неактивен

 

#41 22-06-2008 03:01:22

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1098
Thanks :   64 
Firefox 

Re: Проблема с именем файлов в FBReader

Хотите оптимизаций smile не проблема!
1. Ваше sed выражение sed -e 's/–/_/g;s/ /_/g;s/-/_/g' избыточно. Достаточно sed -e 's/[ -–]/_/g'
2. Переменная tmpname не нужна, она используется один раз.
3. Тоже самое с transname, правда выражение получится длинным, поэтому на любителя
4. sed -e 's/\.zip//' удаляет .zip не только в конце. Лучше sed -e 's/\.zip$//'
5. тоже самое здесь: sed -e 's/\.txt/\.zip/'


Nokia 770/IT 2006, N810

Неактивен

 

#42 22-06-2008 04:00:26

alex2ndr  
Таблетоид
На форуме с: 15-04-2008
Сообщений: 55
Thanks :   
Iceweasel 

Re: Проблема с именем файлов в FBReader

wall говорит:

1. Ваше sed выражение sed -e 's/–/_/g;s/ /_/g;s/-/_/g' избыточно. Достаточно sed -e 's/[ -–]/_/g'

вместо [ -–] надо писать [ -\–] иначе ругается так -

Код:

sed: -e выражение #1, символ 14: Invalid collation character

Переменную transname убирать не стал ибо не люблю работать с выражениями которые на экране в 2 строки отражаються , а все остальное оптимизировал:

Код:

#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

cp -r in/* out
find ./out/ -type f -iname "*[а-я]*.zip" | while read fn ; do
        # Утилита uniconv находиться в пакете yudit - для работы этого скрипта данный пакет должен стоять
        transname=`basename "$fn" | sed -e 's/\.zip$//;s/[ -\–]/_/g' | uniconv -encode Russian-Translit | sed -e 's/[:"]//g'`
        fullnm="`dirname "$fn"`/$transname.txt"
        unzip -p "$fn" > "$fullnm"
        zip -mj - "$fullnm" > "`echo $fullnm | sed -e 's/\.txt$/\.zip/'`"
        rm "$fn"
done
exit 0

Еще предложения будут?smile

PS 2wall - есть у меня еще один свеженаписанный скриптик (как обычно кривокодерский smile ) - но к таблетке не относиться - посмотреть не желаете? wink


Nokia N800 OS 2.2007.51.3 / Nokia 3110 Classic / Debian Etch r3

Неактивен

 

#43 23-06-2008 01:10:29

Dali  
TabletGeek
Откуда: Kazan
На форуме с: 28-03-2008
Сообщений: 361
Thanks :   21 
Firefox 

Re: Проблема с именем файлов в FBReader

Wall говорит:

2. Переменная tmpname не нужна, она используется один раз.
3. Тоже самое с transname, правда выражение получится длинным, поэтому на любителя

Это вопрос стиля программирования. Гуры говорят, что ясность кода (часы, сэкономленные в поисках ошибок) важнее, чем сэкономленные несколько байт и микросекунд выполнения.


Nokia N800 / diablo inside + A-Data SDHC6 4Gb + Nokia 5610 + USBHDD + Card Readers + Palm TT3 + Linksys WRT54G / OpenWRT + Megafon EDGE

Неактивен

 

#44 23-06-2008 02:01:55

alex2ndr  
Таблетоид
На форуме с: 15-04-2008
Сообщений: 55
Thanks :   
Firefox 

Re: Проблема с именем файлов в FBReader

Это вопрос стиля программирования. Гуры говорят, что ясность кода (часы, сэкономленные в поисках ошибок) важнее, чем сэкономленные несколько байт и микросекунд выполнения.

Ясность кода у меня была на предыдущей странице - поищите там самый большой скриптsmile - я на нем отлаживал алгоритм. А мое мнение такое - на этапе отладки пусть она хоть как-нибудь работает - но окончательный продукт должен быть полностью оптимизирован и минимизирован, а нормальная ясность кода обеспечивается коментариями. Данная программа слишком маленькая - я посчитал что излишне набивать коментариями каждую строкуsmile

Оффтоп - обнаружил тут в вышеупомянутом скрипте (том, что кривокодерский но к таблетке не относиться - я чуть выше упоминал) бесконечный цикл big_smile, который гонял мой сервер 12 часов пока я это дело не заметил tongue

Отредактированно alex2ndr (23-06-2008 02:06:41)


Nokia N800 OS 2.2007.51.3 / Nokia 3110 Classic / Debian Etch r3

Неактивен

 

#45 23-06-2008 03:53:21

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1098
Thanks :   64 
Iceweasel 

Re: Проблема с именем файлов в FBReader

alex говорит:

Еще предложения будут?smile

Навскидку приходит в голову то, что обработка ошибок отсутствует, да и это предположение насчет in и out тоже не добавляет красоты.

PS 2wall - есть у меня еще один свеженаписанный скриптик (как обычно кривокодерский smile ) - но к таблетке не относиться - посмотреть не желаете? wink

Давайте. Только наверное лучше не в эту тему.


Nokia 770/IT 2006, N810

Неактивен

 

#46 23-06-2008 03:56:59

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1098
Thanks :   64 
Iceweasel 

Re: Проблема с именем файлов в FBReader

Dali говорит:

Это вопрос стиля программирования. Гуры говорят, что ясность кода (часы, сэкономленные в поисках ошибок) важнее, чем сэкономленные несколько байт и микросекунд выполнения.

Это все вопрос стиля. Мои советы были в соответствии с моими стилевыми предпочтениями.
Однако определение переменной только для того, чтобы ее использовать  в следующей строке вряд ли может считаться хорошим стилем.
А насчет второго пункта я так и написал: на любителя и написал почему.


Nokia 770/IT 2006, N810

Неактивен

 

#47 23-06-2008 04:00:53

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1098
Thanks :   64 
Iceweasel 

Re: Проблема с именем файлов в FBReader

alex2ndr говорит:

Ясность кода у меня была на предыдущей странице - поищите там самый большой скриптsmile

Вы себе льстите smile По крайней мере я так и не понял ваших манипуляций.

Можете провести эксперимент - показать оба скрипта людям и спросить что они делают.
Я больше чем уверен, что быстрее можно понять  логику последнего - она банально пряма.


Nokia 770/IT 2006, N810

Неактивен

 

#48 23-06-2008 04:27:45

alex2ndr  
Таблетоид
На форуме с: 15-04-2008
Сообщений: 55
Thanks :   
Firefox 

Re: Проблема с именем файлов в FBReader

Wall говорит:

Давайте. Только наверное лучше не в эту тему.

Спасибоsmile. Создал новую тему в Общие вопросы по Линукс -
http://n8xx.com/subject-1454-skript-rez … rovat.html   
Всем кому интересно попрактиковаться в скриптах (и помочь мне smile ) - Добро пожаловать!


Nokia N800 OS 2.2007.51.3 / Nokia 3110 Classic / Debian Etch r3

Неактивен

 

#49 23-06-2008 04:33:48

alex2ndr  
Таблетоид
На форуме с: 15-04-2008
Сообщений: 55
Thanks :   
Firefox 

Re: Проблема с именем файлов в FBReader

Wall говорит:

Вы себе льстите smile По крайней мере я так и не понял ваших манипуляций.

Зато мне было понятно smile - разве это не главное что понимать должен разработчик - по крайней мере на этапе разработки.
И оба скрипта уже показаны людям.


Nokia N800 OS 2.2007.51.3 / Nokia 3110 Classic / Debian Etch r3

Неактивен

 

#50 23-06-2008 06:04:27

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1098
Thanks :   64 
Iceweasel 

Re: Проблема с именем файлов в FBReader

И оба скрипта уже показаны людям.

И что сказали люди? Неужели они сказали что ваш скрипт с этими temp_file_name_0 и temp_file_name_1 более понятен чем последний?
А что непонятно в последнем-то? Куда уж проще, кажется.


Nokia 770/IT 2006, N810

Неактивен

 

Board footer

Powered by PunBB
© Copyright 2002-2008 Rickard Andersson

Использованы иконки браузеров с форума forum.mozilla-russia.org


Коллеги : Linux-телефоны на LinuxPhone.ru

[ Generated in 1.120 seconds, 6 queries executed ]