* Re: [room] Как найти файл в определённой кодировке?
@ 2011-08-22 11:06 ` Alexei V. Mezin
2011-08-22 11:53 ` Sergey Korobitsin
1 sibling, 1 reply; 8+ messages in thread
From: Alexei V. Mezin @ 2011-08-22 11:06 UTC (permalink / raw)
To: Культурный
офтопик
22.08.2011 14:01, Денис Черносов пишет:
> 1) Есть ли автоматический способ получить список файлов, в cp1251 для
> (полу)автоматической конвертации в юникод?
>
> 2) Аналогичный вопрос про переносы строк в стиле Windows|Unix...
Не так?
[alexei@intel_server tmp]$ file 1251.txt utf.txt
1251.txt: ISO-8859 English text, with CRLF line terminators
utf.txt: UTF-8 Unicode English text
Один файл из второго получен путем recode cp1251..utf8.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [room] Как найти файл в определённой кодировке?
2011-08-22 11:06 ` [room] Как найти файл в определённой кодировке? Alexei V. Mezin
@ 2011-08-22 11:53 ` Sergey Korobitsin
1 sibling, 1 reply; 8+ messages in thread
From: Sergey Korobitsin @ 2011-08-22 11:53 UTC (permalink / raw)
To: smoke-room
Денис Черносов ☫ → To Культурный офтопик @ Mon, Aug 22, 2011 14:01 +0400
> Добрый день всем!
>
>
> Есть проект, которые разрабатывался в течение долгого времени самыми разными
> людьми. В нём в хаотичном порядке встречаются файлы в кодировке cp1251
> (остальные в юникоде).
>
> 1) Есть ли автоматический способ получить список файлов, в cp1251 для
> (полу)автоматической конвертации в юникод?
AFAIR, recode при указании перекодировать cp1251->unicode уже
unicode-ный файл не тронет (у меня был положительный опыт, но лучше
попробовать).
> 2) Аналогичный вопрос про переносы строк в стиле Windows|Unix...
Аналогично здесь. AFAIK, все преобразователи делают замену \r\n на \n,
соответственно юниксный файл будет содержать только \n и заменятор
заменять ничего не будет. Но вначале всё равно стоит
поэкспериментировать.
--
Bright regards, Sergey Korobitsin,
Chief Research Officer
Arta Software, http://arta.kz/
xmpp:undertaker@jabber.arta.kz
--
...Когда я увидел перед собой перспективу жизни, прожитой так же,
как живет весь мир, я решил - ни за что, это отвратительно,
мне будет стыдно самого себя. Если бы я участвовал в поддержке
этой системы отчужденного, собственнического программирования,
мне казалось бы, что я делаю мир хуже ради денег.
-- Ричард М. Столлман (из интервью)
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [room] Как найти файл в определённой кодировке?
@ 2011-08-24 10:09 ` Alexei V. Mezin
0 siblings, 0 replies; 8+ messages in thread
From: Alexei V. Mezin @ 2011-08-24 10:09 UTC (permalink / raw)
To: Культурный
офтопик
24.08.2011 13:57, Денис Черносов пишет:
> Нет, эта информация ненадёжная.
Не знаю, есть ли готовое, но google("file charset detection") говорит, что
http://sourceforge.net/projects/chsdet/
http://fredeaker.blogspot.com/2007/01/character-encoding-detection.html
http://www-archive.mozilla.org/projects/intl/detectorsrc.html
и даже есть теория
http://www-archive.mozilla.org/projects/intl/UniversalCharsetDetection.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [room] Как найти файл в определённой кодировке?
@ 2011-08-24 10:14 ` Alexei V. Mezin
2011-08-24 10:23 ` Andrew Borodin
2011-08-24 10:19 ` Aleksey Avdeev
2011-08-24 11:43 ` Sergey Korobitsin
2 siblings, 1 reply; 8+ messages in thread
From: Alexei V. Mezin @ 2011-08-24 10:14 UTC (permalink / raw)
To: Культурный
офтопик
24.08.2011 14:04, Денис Черносов пишет:
> 2) преобразование виндовых разделителей в юниксовые он делать не умеет и
> вообще не перекодирует такие файлы:
>
> recode: failed: Ambiguous output in step `CR-LF..data'
>
Для этого есть ключ -f
С последующим прогоном recode /CR (или /LF, надо в man уточнить),
который уберет лишние символы там, где они есть.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [room] Как найти файл в определённой кодировке?
2011-08-24 10:14 ` Alexei V. Mezin
@ 2011-08-24 10:19 ` Aleksey Avdeev
2011-08-24 11:43 ` Sergey Korobitsin
2 siblings, 0 replies; 8+ messages in thread
From: Aleksey Avdeev @ 2011-08-24 10:19 UTC (permalink / raw)
To: Культурный
офтопик
[-- Attachment #1: Type: text/plain, Size: 1389 bytes --]
24.08.2011 14:04, Денис Черносов пишет:
>
>
> 22 августа 2011 г. 15:53 пользователь Sergey Korobitsin
> <undertaker@arta.kz <mailto:undertaker@arta.kz>> написал:
>
> Денис Черносов ☫ → To Культурный офтопик @ Mon, Aug 22, 2011 14:01 +0400
>
...
>
> > 2) Аналогичный вопрос про переносы строк в стиле Windows|Unix...
>
> Аналогично здесь. AFAIK, все преобразователи делают замену \r\n на \n,
> соответственно юниксный файл будет содержать только \n и заменятор
> заменять ничего не будет. Но вначале всё равно стоит
> поэкспериментировать.
>
>
> Поэкспериментировал...
> 1) вроде бы recode действительно не перекодирует лишнего, но
> 2) преобразование виндовых разделителей в юниксовые он делать не умеет и
> вообще не перекодирует такие файлы:
>
> recode: failed: Ambiguous output in step `CR-LF..data'
dos2unix (из пакета hd2u)?
--
С уважением. Алексей.
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 900 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [room] Как найти файл в определённой кодировке?
2011-08-24 10:14 ` Alexei V. Mezin
@ 2011-08-24 10:23 ` Andrew Borodin
2011-08-25 20:18 ` Aleksey Avdeev
0 siblings, 1 reply; 8+ messages in thread
From: Andrew Borodin @ 2011-08-24 10:23 UTC (permalink / raw)
To: Культурный
офтопик
On Wed, Aug 24, 2011 at 02:14:39PM +0400, Alexei V. Mezin wrote:
> 24.08.2011 14:04, Денис Черносов пишет:
> С последующим прогоном recode /CR (или /LF, надо в man
> уточнить), который уберет лишние символы там, где они есть.
Думаю, что
tr -d '\r'
будет быстрее.
--
С уважением
А. Бородин.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [room] Как найти файл в определённой кодировке?
2011-08-24 10:14 ` Alexei V. Mezin
2011-08-24 10:19 ` Aleksey Avdeev
@ 2011-08-24 11:43 ` Sergey Korobitsin
2 siblings, 0 replies; 8+ messages in thread
From: Sergey Korobitsin @ 2011-08-24 11:43 UTC (permalink / raw)
To: smoke-room
Денис Черносов ☫ → To Культурный офтопик @ Wed, Aug 24, 2011 14:04 +0400
> Поэкспериментировал...
> 1) вроде бы recode действительно не перекодирует лишнего, но
> 2) преобразование виндовых разделителей в юниксовые он делать не умеет и
> вообще не перекодирует такие файлы:
>
> recode: failed: Ambiguous output in step `CR-LF..data'
>
> Зато iconv их нормально отрабатывает. Но iconv точно пытается перекодироват
> файлы, которые уже в юникоде и вылетает по ошибке:
>
> iconv: недопустимая входная последовательность в позиции 1099
>
> Так что вижу выход рекурсивного прохода каталога с помощью recode и второго
> прохода файлов, на которых он споткнулся с помощью iconv.
Можно сделать в три этапа:
1. Прогоняем каталоги dos2unix (или аналогичной штукой, tr например)
Результат: имеем все файлы в UNIX-кодировке
2. Натравливаем на готовые файлы. В идеале оно должно пройти без ошибок.
Если ошибки всё-таки есть, то смотрим, что произошло и при
необходимости натравливаем iconv
> Спасибо всем за участие! Особенно тебе, земляк. ;)
Пожалуйста! Меня тоже напрягают файлы не в unicode и не в
unix-line-endings. При попытке работать с такими с помощью while; read,
awk, да почти всеми текстовыми утилитами, начинается такая катавасия,
что боже упаси.
--
Bright regards, Sergey Korobitsin,
Chief Research Officer
Arta Software, http://arta.kz/
xmpp:undertaker@jabber.arta.kz
--
Пифагоровы штаны Лобачевскому смешны
-- <lj user=osd>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [room] Как найти файл в определённой кодировке?
2011-08-24 10:23 ` Andrew Borodin
@ 2011-08-25 20:18 ` Aleksey Avdeev
0 siblings, 0 replies; 8+ messages in thread
From: Aleksey Avdeev @ 2011-08-25 20:18 UTC (permalink / raw)
To: Культурный
офтопик
[-- Attachment #1: Type: text/plain, Size: 465 bytes --]
24.08.2011 14:23, Andrew Borodin пишет:
> On Wed, Aug 24, 2011 at 02:14:39PM +0400, Alexei V. Mezin wrote:
>> 24.08.2011 14:04, Денис Черносов пишет:
>
>> С последующим прогоном recode /CR (или /LF, надо в man
>> уточнить), который уберет лишние символы там, где они есть.
>
> Думаю, что
>
> tr -d '\r'
>
> будет быстрее.
Если концевые пробелы не критичны, то как вариант:
sed -i 's/[[:space:]]*$//' ...
--
С уважением. Алексей.
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 900 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-08-25 20:18 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-22 11:06 ` [room] Как найти файл в определённой кодировке? Alexei V. Mezin
2011-08-24 10:09 ` Alexei V. Mezin
2011-08-22 11:53 ` Sergey Korobitsin
2011-08-24 10:14 ` Alexei V. Mezin
2011-08-24 10:23 ` Andrew Borodin
2011-08-25 20:18 ` Aleksey Avdeev
2011-08-24 10:19 ` Aleksey Avdeev
2011-08-24 11:43 ` Sergey Korobitsin
Культурный офтопик
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/smoke-room/0 smoke-room/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 smoke-room smoke-room/ http://lore.altlinux.org/smoke-room \
smoke-room@lists.altlinux.org smoke-room@lists.altlinux.ru smoke-room@lists.altlinux.com smoke-room@altlinux.ru smoke-room@altlinux.org smoke-room@altlinux.com
public-inbox-index smoke-room
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.smoke-room
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git