LINUX.ORG.RU

find and exec

 , ,


0

1

Есть какая-то структура

~/1/blabla/test.po
~/1/blabla2/test.po
~/1/asdasd/test.po
~/1/test.po
Как с помощью find для каждого test.po сделать
msgfmt -o test.mo test.po
Чтобы test.mo был в той же директории что и test.po для которого юзался msgfmt


Ответ на: комментарий от schizoid

Спасибо :) Вот блин, а я извращался с sed-ом.

Ну а все таки, может кто подскажет, как в exec подсунуть sed-у {}, а выхлоп sed-a подсунуть в качестве аргумента какой-нибудь команде. Что-то типа(просто для примера):

find . -name "*.po" -exec msgfmt -o `echo "{}" | sed 's|\(.*\)\..*|\1|'`.so "{}" \;

mau5
() автор топика
Ответ на: комментарий от dexpl

Пробовал, но все почему-то сводиться к одному.

Просто sh -c :

sh -c "echo `echo ./1/pl/messages.po|sed 's|\(.*\)\..*|\1|'`.mo"
./1/pl/messages.mo

Но в find почему-то:

find . -name "*.po" -exec sh -c "echo `echo "{}"|sed 's|\(.*\)\..*|\1|'`.mo" \;
./1/pl/messages.po.mo

mau5
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.