ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: "Nick S. Grechukh" <ngrechukh@ua.fm>
To: community@altlinux.ru
Subject: Re: [Comm] конвертировать из cp1251 в koi8-r
Date: Wed, 30 Mar 2005 11:13:59 +0300
Message-ID: <200503301114.05100.ngrechukh@ua.fm> (raw)
In-Reply-To: <20050329182641.0477068e@home.greg.com.ru>

[-- 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 --]

  reply	other threads:[~2005-03-30  8:13 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-29 12:41 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 [this message]
2005-03-29 13:27 ` Andrey Rahmatullin
2005-03-30 11:30 ` Sergey Shilov
2005-03-30  8:39   ` Nick S. Grechukh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200503301114.05100.ngrechukh@ua.fm \
    --to=ngrechukh@ua.fm \
    --cc=community@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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