* [Comm] конвертировать из cp1251 в koi8-r
@ 2005-03-29 12:41 Grigory Fateyev
2005-03-29 13:01 ` Nick S. Grechukh
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Grigory Fateyev @ 2005-03-29 12:41 UTC (permalink / raw)
To: community
Здравствуйте!
Надо конвертировать группу файлов из cp1251 в koi8-r, вот нашкрябал но
не работает.
find -type f -name "*.txt" -exec bash -c 'old="{}"; iconv -c -f
cp1251 -t koi8-r | new=`cat /dev/null > $old`; mv "$old" "$new"' \;
Где ошибка?
Спасибо!
--
Всего наилучшего!
greg_[at]_anastasia_[dot]_ru Григорий.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] конвертировать из cp1251 в koi8-r
2005-03-29 12:41 [Comm] конвертировать из cp1251 в koi8-r Grigory Fateyev
@ 2005-03-29 13:01 ` Nick S. Grechukh
2005-03-29 14:26 ` Grigory Fateyev
2005-03-29 13:27 ` Andrey Rahmatullin
2005-03-30 11:30 ` Sergey Shilov
2 siblings, 1 reply; 7+ messages in thread
From: Nick S. Grechukh @ 2005-03-29 13:01 UTC (permalink / raw)
To: community
On Tue, Mar 29, 2005 at 04:41:41PM +0400, Grigory Fateyev wrote:
> Надо конвертировать группу файлов из cp1251 в koi8-r, вот нашкрябал но
> не работает.
> find -type f -name "*.txt" -exec bash -c 'old="{}"; iconv -c -f
> cp1251 -t koi8-r | new=`cat /dev/null > $old`; mv "$old" "$new"' \;
> Где ошибка?
везде ;-)
ставим команды по порядку и смотрим
old="{}";
iconv -c -f cp1251 -t koi8-r | new=`cat /dev/null > $old`;
что именно iconv должен конвертировать по замыслу? на входе ничего нет.
хорошо, old мы очистили, но что при этом должно попасть в
new? очевидно вывод команды cat /dev/null > $old. а в нем ничего нет.
mv "$old" "$new"
при таком написании в new должно быть некое имя файла.
кстати, зачем? Вы ведь только что очистили old, cat'нув в него /dev/null.
зы. как минимум cat "$old" | iconv -c -f cp1251 -t koi8-r
(куда оно пойдет вопрос отдельный)
попробуйте для начала на естественном языке описать, как оно должно
работать.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] конвертировать из cp1251 в koi8-r
2005-03-29 12:41 [Comm] конвертировать из cp1251 в koi8-r Grigory Fateyev
2005-03-29 13:01 ` Nick S. Grechukh
@ 2005-03-29 13:27 ` Andrey Rahmatullin
2005-03-30 11:30 ` Sergey Shilov
2 siblings, 0 replies; 7+ messages in thread
From: Andrey Rahmatullin @ 2005-03-29 13:27 UTC (permalink / raw)
To: community
[-- Attachment #1: Type: text/plain, Size: 433 bytes --]
On Tue, Mar 29, 2005 at 04:41:41PM +0400, Grigory Fateyev wrote:
> Надо конвертировать группу файлов из cp1251 в koi8-r, вот нашкрябал но
> не работает.
apt-get install convmv
--
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(8):
> Забирайте [пакет из obsolete]
Спасибо. Больше ни у кого не будет возражений против проведения
эксгумации с последующей гальванизацией и реанимацией?
-- mutabor in devel@
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] конвертировать из cp1251 в koi8-r
2005-03-29 13:01 ` Nick S. Grechukh
@ 2005-03-29 14:26 ` Grigory Fateyev
2005-03-30 8:13 ` Nick S. Grechukh
0 siblings, 1 reply; 7+ messages in thread
From: Grigory Fateyev @ 2005-03-29 14:26 UTC (permalink / raw)
To: community
Hello, Nick!
29 Марта 2005г. в 16:01 You wrote:
> > Где ошибка?
> везде ;-)
>
> ставим команды по порядку и смотрим
>
> old="{}";
> iconv -c -f cp1251 -t koi8-r | new=`cat /dev/null > $old`;
> что именно iconv должен конвертировать по замыслу? на входе ничего
> нет. хорошо, old мы очистили, но что при этом должно попасть в
> new? очевидно вывод команды cat /dev/null > $old. а в нем ничего нет.
>
> mv "$old" "$new"
> при таком написании в new должно быть некое имя файла.
> кстати, зачем? Вы ведь только что очистили old, cat'нув в него
> /dev/null.
>
>
> зы. как минимум cat "$old" | iconv -c -f cp1251 -t koi8-r
> (куда оно пойдет вопрос отдельный)
>
> попробуйте для начала на естественном языке описать, как оно должно
> работать.
1. "Катим" выбранный файл по маске;
2. Перекодируем вывод п.1;
3. Записываем вывод в $new;
4. $new свою очередь обнуляет $old;
find -type f -name "*.txt" -exec bash -c 'old="{}"; cat $old |
iconv -c -f cp1251 -t koi8-r -o new=`cat /dev/null > $old` \;
Вроде должно работать? :)
--
Всего наилучшего!
greg_[at]_anastasia_[dot]_ru Григорий.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] конвертировать из cp1251 в koi8-r
2005-03-29 14:26 ` Grigory Fateyev
@ 2005-03-30 8:13 ` Nick S. Grechukh
0 siblings, 0 replies; 7+ messages in thread
From: Nick S. Grechukh @ 2005-03-30 8:13 UTC (permalink / raw)
To: community
[-- Attachment #1: Type: text/plain, Size: 1577 bytes --]
On Tuesday 29 March 2005 17:26, Grigory Fateyev wrote:
> 1. "Катим" выбранный файл по маске;
> 2. Перекодируем вывод п.1;
ок.
> 3. Записываем вывод в $new;
в _переменную_ new или файл $new?
чтобы вывод команды засунуть в переменную есть как минимум два варианта:
окружить команду `` (или $(), не суть важно)
new=$(cat .. | iconv ... | some-command)
или в конце:
cat .. | iconv .. | some-command-like-grep | new=`cat`
здесь в переменную new попадет stdout того что в апострофах - cat. а ее вывод
ситуативно совпадает с ее stdin, это же cat. в итоге в переменной окажется то
что вывела вся предыдущая цепочка.
> 4. $new свою очередь обнуляет $old;
что значит обнуляет? видимо, перекодированный текст из переменной new следует
засунуть обратно в файл, имя которого в old.
сделать echo $new > $old не получится, потому что ньюлайны превратятся в
пробелы. нужно делать
cat << EOF > my_new_file
$new
EOF
здесь файл _называется_ my_new_file. если поставить cat << EOF > $my_new_file,
то именем файла будет содержимое переменной my_new_file.
теперь смотрим Ваш вариант
> find -type f -name "*.txt" -exec bash -c 'old="{}"; cat $old |
все ок.
> iconv -c -f cp1251 -t koi8-r -o new=`cat /dev/null > $old` \;
непонятно. ключ -o выводит stdout в файл имя которого идет после ключа.
(кстати, в переменную так не засунешь). в Вашем случае файл будет называться
"new=что-то-там". а это 'что-то там' будет очевидно пустое, потому что
"cat > /dev/null > $old" на stdout ничего не выведет, и new=`...` будет
развернуто в "new=".
> Вроде должно работать? :)
не-а. не должно ;-)
[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] конвертировать из cp1251 в koi8-r
2005-03-30 11:30 ` Sergey Shilov
@ 2005-03-30 8:39 ` Nick S. Grechukh
0 siblings, 0 replies; 7+ messages in thread
From: Nick S. Grechukh @ 2005-03-30 8:39 UTC (permalink / raw)
To: community
[-- Attachment #1: Type: text/plain, Size: 296 bytes --]
On Wednesday 30 March 2005 14:30, Sergey Shilov wrote:
> Можно попробовать:
> find . -name "*.txt" -exec echo "iconv -o {}.tmp -f cp1251 -t koi8-r {} &&
> mv -f {}.tmp {}" \; | bash -s
так неинтересно. у человека был свой вариант, просто неправильно
реализованный. teach man to fish, в общем.
[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] конвертировать из cp1251 в koi8-r
2005-03-29 12:41 [Comm] конвертировать из cp1251 в koi8-r Grigory Fateyev
2005-03-29 13:01 ` Nick S. Grechukh
2005-03-29 13:27 ` Andrey Rahmatullin
@ 2005-03-30 11:30 ` Sergey Shilov
2005-03-30 8:39 ` Nick S. Grechukh
2 siblings, 1 reply; 7+ messages in thread
From: Sergey Shilov @ 2005-03-30 11:30 UTC (permalink / raw)
To: community
В сообщении от 29 Март 2005 12:41 Grigory Fateyev написал:
> Надо конвертировать группу файлов из cp1251 в koi8-r,
Можно попробовать:
find . -name "*.txt" -exec echo "iconv -o {}.tmp -f cp1251 -t koi8-r {} && mv -f {}.tmp {}" \; | bash -s
> вот нашкрябал но не работает.
>
> find -type f -name "*.txt" -exec bash -c 'old="{}"; iconv -c -f
> cp1251 -t koi8-r | new=`cat /dev/null > $old`; mv "$old" "$new"' \;
>
> Где ошибка?
Возьму на себя смелость порекомендовать для прочтения шедевр
http://www.rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.html
Снимает массу вопросов.
--
С уважением
Сергей Шилов
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2005-03-30 11:30 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-03-29 12:41 [Comm] конвертировать из cp1251 в koi8-r Grigory Fateyev
2005-03-29 13:01 ` Nick S. Grechukh
2005-03-29 14:26 ` Grigory Fateyev
2005-03-30 8:13 ` Nick S. Grechukh
2005-03-29 13:27 ` Andrey Rahmatullin
2005-03-30 11:30 ` Sergey Shilov
2005-03-30 8:39 ` Nick S. Grechukh
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git