LINUX.ORG.RU

Транслит штатными средствами Linux


0

0

Я тут спрашивал как-то как сделать транслит в Linux'e, пользуясь средствами, входящими практически в любой дистрибутив. Меня все к программам-декодировщикам отсылали.

А теперь я сам додумался. Если кому охота посмотреть -

http://selnix.narod.ru/cyrlat.html

-

а если просто восьмой бит зарубить?

SadStork
()

>а если просто восьмой бит зарубить?

Это в кои-8

А если другая кодировка?

Ikonta_521
()

4Ikonta_521: Стыдно тебе должно быть такие вопросы задавать. :)
Если другая кодировка - iconv'ов в koi8-r, а потом зарубить бит.
И будет ascii с транслитом.

jackill ★★★★★
()

правда я не знаю, как в шелле зарезать восьмой бит... :)

SadStork
()

Да, а как "зарубить" восьмой бит?

Напомню, что речь шла о Кноппиксе, поэтому установка к-л доп.утилит не рассматривается.

Thanx.

-

LittleBin
() автор топика

#!/bin/bash

INPUTFILE="inp"
OUTFILE="out"

TMPFILE=/tmp/out.$$

data_in=`hexdump $INPUTFILE -e '8/1 "%4d" "\n"'`
data_out=''

for CC in $data_in; do
if [ $CC -gt 128 ]; then
DD=`printf "%x" $[$CC-128]`
else
DD=`printf "%x" $[$CC]`
fi
data_out="$data_out$DD"
done

echo $data_out > $TMPFILE
xxd -r -p $TMPFILE $OUTFILE

DiMoN ★★★
()

P.S. для RPM-based дистрибуьтивов нужны пакеты vim-common и util-linux

DiMoN ★★★
()

и как этот скрипт запускать, чтобы в отдельно взятом файле перекодировать?

anonymous
()
Ответ на: комментарий от jackill

2 jackill

>Стыдно тебе должно быть такие вопросы задавать. :)

Совершенно не стыдно.

>Если другая кодировка - iconv'ов в koi8-r, а потом зарубить бит. И будет ascii с транслитом.

Лишнее действие. Я уточнял для ситуации, когда дополнительных телодвидений производить не приходится.

И системная локаль может иметь вид отличный от KOI8-R (конечно ересь) => необходимость обратного преобразования...

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