Отправляет email-рассылки с помощью сервиса Sendsay

За 2005-12-09

Re: Проблема с BASH-скриптом и файлами с пробелами в именах

> Здравствуйте!
>
> Нужно получить файла вот такого примерно вида:
>
> File1=/somedir/somefile1
> File2=/somedir/somefile2
> ...
>
> Пытаюсь сделать вот так:
>
> dir="/mnt/d/Music/Down Low"
> count=0
> for i in "$( find "$dir" -iname "*.mp3" -o -iname "*.ogg" )"; do
> let "count = $count + 1"
> echo $count
> echo "$i" >> "tmp_file"
> done
>
> Получается фигово:
>
> $ cat /tmp/tmp_file
> File1=/mnt/d/Music/Down Low/Down Low - Vision Of Life.ogg
> /mnt/d/Music/Down Low/Down Low - Moonlight.mp3
> /mnt/d/Music/Down Low/Down Low - Key To Your Heart.ogg
> /mnt/d/Music/Down Low/Down Low - Thank You.mp3
> /mnt/d/Music/Down Low/Down low - Once upon a time.mp3
> /mnt/d/Music/Down Low/Down Low - Johny B.ogg
> /mnt/d/Music/Down Low/Down Low - La Serenissima.ogg
>
> Т.е. оно весь вывод find обрабатывает целиком. Если убрать кавычки вокруг

> find (вот так: $( find "$dir" -iname "*.mp3" -o -iname "*.ogg" ) ), то оно

> разбивает строку по пробелам. Перепробовал уже кучу вариантов, кавычки ставил
>
> по-всякому - не выходит.
> Как такое сделать?

Здравствуйте 9A4172.
Скрипт получился не очень красивый, но вреде работает.

#!/bin/sh
dir="/home/d3rp/music"
count=0
find $dir -iname "*.mp3" -o -iname "*.ogg" > listn
sed 's/ /|/g' listn > listm
for i in $(cat listm); do
count=$(($count+1))
echo $count
echo "File$count=$i" >> "tmp_file1"
done
sed 's/|/ /g' tmp_file1 > tmp_file
rm -rf tmp_file1 listn listm

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 23078; Возраст листа: 868; Участников: 1472
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/487465

   Trubachev Andrew 2005-12-09 23:33:31 (#487465)

ubuntu

Есть такой дистрибутив (сабж)... дал мне его друган которому на халяву
прислали этот дистриб... красочная упаковочка, два СД лив и инстал...
так вот после того как он загрузился с лива у него потух навсегда
монитор... :( Я подцепил эти диски с надеждой поюзать в WMvare но не
тут то было... в процессе загрузки сообщает что ядро в панике... и что
NOT SYNCING: ATTEMPTED TO KILL INIT!!!
Любопытство было на столько велико я вставил ЛИВ в свой СД и
загрузился, моему ЖК монитору ничего не стало... только вот одно
смущало... экран незаметно (если сильно присмотреться) "плывёт"...
волнами...

Вопрос такой, возможно ли всётаки запустить это дело в эмуляторе обойдя
панику ядра...
Или я собираюсь в обозримом будущем поставить его на винт...
возможноли потом в установленной системе избавиться от плывучести
экрана...? Если конечно это трабл а не мои выдумки...

+++ +++

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 23077; Возраст листа: 868; Участников: 1472
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/487438

   "a.g. bell" 2005-12-09 21:53:57 (#487438)

Проблема с BASH-скриптом и файлами с пробелами в именах

Здравствуйте!

Нужно получить файла вот такого примерно вида:

File1=/somedir/somefile1
File2=/somedir/somefile2
...

Пытаюсь сделать вот так:

dir="/mnt/d/Music/Down Low"
count=0
for i in "$( find "$dir" -iname "*.mp3" -o -iname "*.ogg" )"; do
let "count = $count + 1"
echo $count
echo "$i" >> "tmp_file"
done

Получается фигово:

$ cat /tmp/tmp_file
File1=/mnt/d/Music/Down Low/Down Low - Vision Of Life.ogg
/mnt/d/Music/Down Low/Down Low - Moonlight.mp3
/mnt/d/Music/Down Low/Down Low - Key To Your Heart.ogg
/mnt/d/Music/Down Low/Down Low - Thank You.mp3
/mnt/d/Music/Down Low/Down low - Once upon a time.mp3
/mnt/d/Music/Down Low/Down Low - Johny B.ogg
/mnt/d/Music/Down Low/Down Low - La Serenissima.ogg

Т.е. оно весь вывод find обрабатывает целиком. Если убрать кавычки вокруг
find (вот так: $( find "$dir" -iname "*.mp3" -o -iname "*.ogg" ) ), то оно
разбивает строку по пробелам. Перепробовал уже кучу вариантов, кавычки ставил

по-всякому - не выходит.
Как такое сделать?

Спасибо за ответы-советы.

   2005-12-09 20:57:20 (#487422)

Re: Ассемблерные вставки в gcc

Доброе утро.

- Потому что никто не привык так читать.
- Почему это плохо?
- Это когда пишут ответ в начале письма, оставляя цитированный текст в
конце.
- Что такое top-posting?
- top-posting
- Самое отвратительное явление в переписке?

Не надо делать top-posting, это неудобно. :)

9 декабря 2005 13:58 | Denis Silin:
> Есть такая вставка
> asm __volatile__ ("addc %0, %2, %4\n\t" \
>
> "addze %1, %3" \
>
> : "=r" (__lo_), "=r" (__hi_) \
>
> : "r" (lo), "r" (hi), "r" (1 << (MAD_F_SCALEBITS - 1)));
>
> Входные переменные - "=r" (__lo_), "=r" (__hi_) , т.е. в %0 пойдет __lo_, в

> %1 пойдет __hi_.
> Это так или нет?

И так и нет. %0 - это __lo_, %1 - __hi_, это так. Но я все-таки
перепутал, это *выходные* переменные. Правда, используются они как-то не
очень здраво в этом коде, или мне так кажется?..

> А что подставится в %2, %3, %4 ?

lo, hi и результат (1 << (MAD_F_SCALEBITS - 1)), соответственно.

> Чем отличаются "r" , "=r" , "=&r" , "I" ?

Методами передачи. "r" и "=r" означают использование регистров (по одному
на параметр) общего назначения, но первый используется для описания
входных значений, а второй для выходных, поскольку модификатор "="
подсказывает GCC, что предыдущее значение этой переменной не имеет значения.

Модификатор "&" говорит о том, что значение регистра будет изменяться по
ходу функции, то есть, еще до ее завершения.

"I" - просто 32-разрядная целочисленная константа.

> Что означает \n\t в первой строке ассемблерной вставки "addc %0, %2,
> %4\n\t"?

Это последствия попытки упихать inline ассемблер в макрос. По идее, в коде
можно делать куда как красивше, по принципу:

asm __volatile__ ("addc %0, %2, %4;
addze %1, %3;
call smth"

Но тут-то макрос, с кавычками сильно не побалуешься, и так приходится
бэкслэши писать! Потому получается, что в ассемблерный текст приходится
вставлять переводы строк "\n". Табуляцию "\t" уже по желанию, можно и
убрать.

> Что означает последняя строка __result;?

Она уже не имеет отношения к ассемблеру, это уже часть макроса.

Откуда, кстати, код?

И вот еще, вроде бы, неплохой справочник по командам PowerPC:
http://pds.twi.tudelft.nl/vakken/in1200/labcourse/instruction-set/

   Roman I Khimov 2005-12-09 19:30:01 (#487396)

Re[9]: ircd-hybrid-ru-7.0.2

да нет в природе такой версии
есть 7.0.3

http://prdownloads.sourceforge.net/ircd-hybrid-ru/ircd-hybrid-ru-7.0.3.tar.gz?download

я ее не пробовал но 7.0.3 без RU компилируется без замечаний если gcc 3.x.x

> >> та была 7.3
> >> пробовал опять 7.3 нихрена :(
> >> может из-за версии пакетов?
>
> > А что разве есть такая версия? Откуда?
> это про какую?
> ircd-hybrid-ru-7.0.tar.gz ?
>
> а все равно с ихнего сайта лил (http://hyb.net.ru).
> типа там ссылка есть на 7.3 ее обрезаешь и он выдает список что есть
> так кажись
>
> >>
> >> > а версия gcc какая? Если 4.x.x попробуй 3.x.x. Если не поможет - кидай
> >> > полный вывод configure
> >> кажись 3.х.х
> >> не помню
> > .........
> а гсс 3 стоит
>

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 23074; Возраст листа: 868; Участников: 1472
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/487373

   2005-12-09 18:52:32 (#487373)

Re: Ассемблерные вставки в gcc

Есть такая вставка
asm __volatile__ ("addc %0, %2, %4\n\t" \

"addze %1, %3" \

: "=r" (__lo_), "=r" (__hi_) \

: "r" (lo), "r" (hi), "r" (1 << (MAD_F_SCALEBITS - 1)));

Входные переменные - "=r" (__lo_), "=r" (__hi_) , т.е. в %0 пойдет __lo_, в
%1 пойдет __hi_.
Это так или нет?

А что подставится в %2, %3, %4 ?

Чем отличаются "r" , "=r" , "=&r" , "I" ?

Что означает \n\t в первой строке ассемблерной вставки "addc %0, %2,
%4\n\t"?
Что означает последняя строка __result;?

#define mad_f_scale64(hi, lo) \
({ mad_fixed_t __result; \

mad_fixed64hi_t __hi_; \

mad_fixed64lo_t __lo_; \

asm __volatile__ ("addc %0, %2, %4\n\t" \

"addze %1, %3" \

: "=r" (__lo_), "=r" (__hi_) \

: "r" (lo), "r" (hi), "r" (1 << (MAD_F_SCALEBITS - 1))); \

asm __volatile__ ("rlwinm %0, %2,32-%3,0,%3-1\n\t" \

"rlwimi %0, %1,32-%3,%3,31" \

: "=&r" (__result) \

: "r" (__lo_), "r" (__hi_), "I" (MAD_F_SCALEBITS)); \

__result; \

})

Original Message From: "Roman I Khimov" <rik@o*****.info>
To: "comp.soft.linux.discuss (8508234)" <denis.sil***@s*****.ru>
Sent: Thursday, December 08, 2005 9:24 PM
Subject: Re: Ассемблерные вставки в gcc

Доброе утро!

8 декабря 2005 15:01 | Denis Silin:
> Подскажите, что делает этот код, где можно почитать про формат таких
> ассемблерных
> вставок?

Красиво... Макрос с ассемблерной вставкой. Судя по инструкциям, ассемблер
PowerPC. Формат довольно простой, попробую потренировать память:

> asm __volatile__ ("addc %0, %2, %4\n\t" \
>
> "addze %1, %3" \

Собственно, ассемблерный код (ну это и так видно). Фишка, особенно
интересная для привыкших к синтаксису Intel (NASM) - здесь все пишется в
синтаксисе AT&T.

> : "=r" (__lo_), "=r" (__hi_) \

Входные переменные (в коде на ассемблере они видны как %0, %1...),
передаются через регистры (естественно, никто еще не знает какие)

> : "r" (lo), "r" (hi), "r" (1 << (MAD_F_SCALEBITS - 1))); \

Выходные переменные (используются также).

Если в чем ошибся - поправляйте!

Одного не скажу - чего он делает, поскольку с PowerPC практически не
знаком. Как говорится, Google в помощь. :)

   "Denis Silin" 2005-12-09 15:41:34 (#487325)

Re: Справочник Linux

On Wed, 07 Dec 2005 08:45:02 +0200
Oleg Ponomarev <pony***@t*****.ua> wrote:
> Loginov W.W. пишет:
>
>>Здравствуйте, comp.
>>Не подскажет ли кто где можно скачать книгу "Команды
>>Linux.
>>Справочник" автор Скловская
>>
> Вот здесь немного по командам в линуксе -
>http://web-w.narod.ru/stlincom.htm
>

Кстати, недавно в издательстве "КУДИЦ-ОБРАЗ" вышел неплохой карманный
справочник Даниэла Дж.Баррета "LINUX основные команды". СтОит порядка
80 рублей на "Озоне".

> --
> С уважением, Олег Пономарев.
> mailto: pony***@t*****.ua
>

С уважением -
Андрей Соловьев

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 23072; Возраст листа: 868; Участников: 1472
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/487306

   2005-12-09 14:53:18 (#487306)

Re: Не могу удалить симлинк на каталог из командной строки

В сообщении от Пятница 9 Декабрь 2005 17:26 Sergey B. Khvatov написал(a):

> Удалять надо link без слеша в конце
> link/ - это то же, что и link/. - запись . в каталоге link
> (точнее, в том каталоге, куда этот link указывает)
> Удалить . и .. нельзя - только вместе с каталогом.
>
> > как удалить то, на что линк указывает?
>
> rm `readlink link`
Работает, большое спасибо!

   2005-12-09 12:10:48 (#487255)

Re: Не могу удалить симлинк на каталог из командной строки

В сообщении от 9 декабря 2005 06:43 9A4172 написал(a):
> 0 Дек 9 13:39 test [whirlewind@9A4172 test]$ rm -i
> link/
> rm: cannot remove directory `link/': Is a directory
> [whirlewind@9A4172 test]$ rm -r link/
> rm: cannot remove `link/': Not a directory

Удалять надо link без слеша в конце
link/ - это то же, что и link/. - запись . в каталоге link
(точнее, в том каталоге, куда этот link указывает)
Удалить . и .. нельзя - только вместе с каталогом.

> как удалить то, на что линк указывает?

rm `readlink link`

   "Sergey B. Khvatov" 2005-12-09 10:27:39 (#487224)

Не могу удалить симлинк на каталог из командной строки

Здравствуйте!

Собственно, вот:

[whirlewind@9A4172 test]$ mkdir dir
[whirlewind@9A4172 test]$ ls -lF
total 4,0K
drwxrwxr-x 2 whirlewind whirlewind 4,0K Дек 9 13:40 dir/
-rw-rw-r-- 1 whirlewind whirlewind 0 Дек 9 13:39 test
[whirlewind@9A4172 test]$ ln -s dir/ link
[whirlewind@9A4172 test]$ ls -lF
total 4,0K
drwxrwxr-x 2 whirlewind whirlewind 4,0K Дек 9 13:40 dir/
lrwxrwxrwx 1 whirlewind whirlewind 4 Дек 9 13:40 link -> dir//
-rw-rw-r-- 1 whirlewind whirlewind 0 Дек 9 13:39 test
[whirlewind@9A4172 test]$ rm -i link/
rm: cannot remove directory `link/': Is a directory
[whirlewind@9A4172 test]$ rm -r link/
rm: cannot remove `link/': Not a directory

Midnight Commander и Konqueror удаляют нормально. Как удалить именно линк? А

как удалить то, на что линк указывает?

Спасибо за ответы-советы.

   2005-12-09 06:46:17 (#487187)

как использовать в кластерах windows and linux servers?

как использовать в кластерах windows and linux servers?

чтоб windows and linux servers работали между собой.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 23068; Возраст листа: 868; Участников: 1468
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/487152

   2005-12-09 01:25:50 (#487152)