Составляем скрипт (разнообразные вопросы по утилитам)

Готовые решения для многих вопросов, которые очень часто задаются снова и снова.

Модератор: Модераторы разделов

iZEN
Сообщения: 225

Re: Составляем скрипт

Сообщение iZEN » 06.10.2006 16:58

Строка:

Код: Выделить всё

find -type f -name '*.JPEG' -exec rename 'y/A-Z/a-z/' * {} \;
не работает внутри подкаталогов с именами из символов верхнего регистра, приходится запускать дважды: первый раз имена каталогов приводятся к нижнему регистру, в второй раз запуска переименовываются файлы в них.

Некорректно немного - каталоги и имена до точки не нужно переименовывать, нужно только то, что после точки (расширение имени файла по терминологии Windows).
Perl использовать не хочется. Может как-то можно решить вопрос, изменив строку регулярного выражения? (Я не силён в регулярных выражениях)
Спасибо сказали:

Аватара пользователя
diesel
Модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Составляем скрипт

Сообщение diesel » 06.10.2006 17:20

find -type f -name "*.MP3"|while read i; do echo mv \""$i"\" \""${i%%MP3}mp3"\"; done|sh

пробовал на MP3->mp3 - работает
Спасибо сказали:

Аватара пользователя
TWINc
Сообщения: 179
ОС: Arch Linux Current

Re: Составляем скрипт

Сообщение TWINc » 29.10.2006 03:50

есть папка ./

Код: Выделить всё

[isoHunt] 3953759035a7f564b5167d7304f22977ca9ad511.torrent
[isoHunt] 4ad15ce24d304db23ef454554a9052b8bc777b4e.torrent
[isoHunt] 605d8857ddfb612073fdd8233b07f551c6a021fd.torrent
[isoHunt] 8bd81695fb1f09a03ab93ac0c5d455143a58eba6.torrent
[isoHunt] a55c2ac29927764630bd82117a9266b6dda74cdf.torrent
[isoHunt] b21d94966e00687a4993811c900905d850ecd297.torrent
[isoHunt] [Oyasumi]_Welcome_to_the_NHK!_03v2_[A296ECE2].mkv.torrent
[isoHunt] [Oyasumi]_Welcome_to_the_NHK!_04_[3F28CA98].mkv.torrent
[isoHunt] [Oyasumi]_Welcome_to_the_NHK!_05_[099382E0].mkv.torrent
[isoHunt] [Oyasumi]_Welcome_to_the_NHK!_07_[3D1C3D8F].mkv.torrent
[isoHunt] [Oyasumi]_Welcome_to_the_NHK!_08_[EFB0459E].mkv.torrent
[isoHunt] [Oyasumi]_Welcome_to_the_NHK!_09_[EE543FD5].mkv.torrent
[isoHunt] [Oyasumi]_Welcome_to_the_NHK!_10_[49B8A024].mkv.torrent
[isoHunt] [Oyasumi]_Welcome_to_the_NHK!_11_[61D5076B].mkv.torrent
[isoHunt] [Oyasumi]_Welcome_to_the_NHK!_13_[CDAADAFA].mkv.torrent


в которой много торрентов... и есть у меня консольный клиент transmissioncli

я хотел написать скриптик который бы по очереди скармливал в качалку торрентов файл, но что то у меня так и не получилось...

писал я вот так

Код: Выделить всё

 find . -type f -print0 | xargs -0 transmissioncli -s -u 40

Transmission 0.6.1 (480) - http://transmission.m0k.org/
36 seeder(s), 17 leecher(s).


по идее трансмишн должен по каждому файлу вывести информацию, но как видно из лога выше он останавливаеться на первом...
Registered Linux user number #434194
Спасибо сказали:

Аватара пользователя
diesel
Модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Составляем скрипт

Сообщение diesel » 29.10.2006 08:15

а почему не:
find . -type f -exec transmissioncli -s -u 40 {} \;
Спасибо сказали:

Аватара пользователя
TWINc
Сообщения: 179
ОС: Arch Linux Current

Re: Составляем скрипт

Сообщение TWINc » 29.10.2006 11:52

diesel
Огромное спасибо! Можно тоолько уточнить что значит

на регулярное выражение не очень то похоже...
Registered Linux user number #434194
Спасибо сказали:

Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Составляем скрипт

Сообщение elide » 29.10.2006 12:15

читай man find
слава роботам!
Спасибо сказали:

Krow
Сообщения: 10
ОС: SuSE 10.1

Re: Составляем скрипт

Сообщение Krow » 29.10.2006 18:47

вот уже сколько времени мучает вопрос как правильно использовать комманду patch?
man patch даёт только общее представление, о ключах....
может кто разъяснит как правильно это делать??
вот например комманда patch -p1 patch.tar.gz <не знаю что сдесь писать>
толи имя изначального тар архива, толи бинарник..
в общем помогите кто чем может.. может примерчик подбросите?
Спасибо сказали:

Аватара пользователя
Aectann
Бывший модератор
Сообщения: 3491
Статус: ...
ОС: OS X, GNU_и_не_только/Linux

Re: Составляем скрипт

Сообщение Aectann » 29.10.2006 18:56

Команда patch не может работать непосредственно с tar-архивами. Сначала это безобразие надо разархивировать(tar -zxf имя_файла). Иногда просто запаковывают файл-патч(.gz). Тогда можно сделать так:
gzip -dc имя_файла.patch.gz | patch -p1
Если есть файл просто .patch(а иногда вообще без расширения), то можно сделать так:
patch -p1 имя_файла.patch
или
cat имя_файла.patch | patch -p1
Делаться всё это должно в корневом каталоге исходников, которые будут патчиться
My god... it's full of stars!...
Спасибо сказали:

Krow
Сообщения: 10
ОС: SuSE 10.1

Re: Составляем скрипт

Сообщение Krow » 29.10.2006 19:12

а потом я так понимаю нужно будет пересобирать то что буду патчить?
Спасибо сказали:

Аватара пользователя
Aectann
Бывший модератор
Сообщения: 3491
Статус: ...
ОС: OS X, GNU_и_не_только/Linux

Re: Составляем скрипт

Сообщение Aectann » 29.10.2006 19:15

Krow писал(а):
29.10.2006 19:12
а потом я так понимаю нужно будет пересобирать то что буду патчить?

Конечно, ты же исходники будешь патчить.
My god... it's full of stars!...
Спасибо сказали:

Krow
Сообщения: 10
ОС: SuSE 10.1

Re: Составляем скрипт

Сообщение Krow » 29.10.2006 19:18

Aectann спасибо, я как раз этого и не мог понять, что конкретно нужно патчить исходники или уже скомпиленную программу.
думаю теперь у меня ещё больше будет получаться ;)
Спасибо сказали:

Krow
Сообщения: 10
ОС: SuSE 10.1

Re: Составляем скрипт

Сообщение Krow » 01.11.2006 22:38

пытаясь освоить команду патч хочу протестирровать это на xmms чтобы избавиться от фиговых шрифтов в плейлисте и пр..
вот кусок что делаю и что командная строка мне выдаёт:

krow@krow:~/src/xmms/xmms-1.2.10> cat id3lib-ds-rcc.patch | patch -p1
patching file configure.in
Hunk #1 FAILED at 217.
Hunk #2 FAILED at 329.
2 out of 2 hunks FAILED -- saving rejects to file configure.in.rej
can't find file to patch at input line 35
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -dPNur id3lib-3.8.3-orig/src/field_string_ascii.cpp id3lib-3.8.3-new/src/field_string_ascii.cpp
|--- id3lib-3.8.3-orig/src/field_string_ascii.cpp 2003-03-02 01:23:00.000000000 +0100
|+++ id3lib-3.8.3-new/src/field_string_ascii.cpp 2005-07-19 21:34:12.000000000 +0200
--------------------------
File to patch:
Skip this patch? [y]

почему она так делает? что я делаю не так?
Спасибо сказали:

Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux

Re: Составляем скрипт

Сообщение polachok » 01.11.2006 22:43

что-то, брат Krow, ты не то патчишь :). патч для id3lib-3.8.3, а ты его к xmms прикручиваешь...
И немедленно выпил.
Спасибо сказали:

Krow
Сообщения: 10
ОС: SuSE 10.1

Re: Составляем скрипт

Сообщение Krow » 02.11.2006 07:19

polachok :) видимо туплю... спасибоза подсказку. будем разбираться.
Спасибо сказали:

Аватара пользователя
panter_dsd
Сообщения: 157
Статус: Жаждущий знаний
ОС: Slackware 12

Re: Составляем скрипт

Сообщение panter_dsd » 08.11.2006 20:27

Как при помощи find найти файлы, имена которых не удовлетворяют критерию?
Т.Е. найти файлы не начинающиеся на что-то.
Может я плохо читал, но в мане ответа не нашел.

С уважением.
Пантер.
Спасибо сказали:

Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin

Re: Составляем скрипт

Сообщение Bolverk » 08.11.2006 20:34

find \! -iname XXX
! - логическое отрицание
\ нужен для экранирования
Спасибо сказали:

Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Составляем скрипт

Сообщение Portnov » 09.11.2006 13:58

Почитал топик. Есть предложение переименовать его в "Курим info Finding\ files".
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали: