質問

OS X 10.5.5を使用しています(ただし、大した問題ではないと思います)

二重引用符、1文字の省略記号(" ..."など)などの派手な文字を含むテキストファイルのセットがあります。

これらのファイルを、できれば文字の意味を失うことなく、古き良きプレーン7ビットASCIIに変換する必要があります(つまり、これらの楕円を3つのピリオドに、逆引用符を通常の"などに変換します)。

それを行うには、スマートコマンドライン(bash)ツール/スクリプトを使用してください。

役に立ちましたか?

解決

Elinks Webブラウザーは、UnicodeエンティティをASCIIに変換し、"- " "—"および" ..." "…"など。Pythonモジュール python-elinks は同じ変換テーブルを使用し、次のようにシェルフィルターに変換するのは簡単です。

#!/usr/bin/env python
import elinks
import sys
for line in sys.stdin:
    line = line.decode('utf-8')
    sys.stdout.write(line.encode('ASCII', 'elinks'))

他のヒント

iconv は、私が知っている限りそれを行うべきです。省略記号の例のように、1つの入力文字が複数の出力文字になるべき/変換される可能性のある変換をどのように処理するかについて100%確実ではありません...試してみてください!

更新:試しましたが、うまくいかないようです。おそらく、「より小さい」文字で省略記号(使用したテスト文字)を表現する方法を知らないために失敗します。エンコーディング。 UTF-8からUTF-16への変換はうまくいきました。 :/それでも、iconvはさらに調査する価値があるかもしれません。

音訳ツールをご覧ください。 Unidecode (Perl) 、他の言語に移植するのはそれほど難しくありません。

iconvを使用して、WindowsのTextPadによってOSXのASCIIに作成されたUTF-16LE(試行錯誤で見つかったリトルエンディアン)のファイルを次のようにASCIIに変換しました。

 cat utf16file.txt |iconv -f UTF-16LE -t ASCII > asciifile.txt

hexdumpをパイプして文字を表示し、正しい出力を取得していることを確認できます。端末はUTF-16の解釈方法を認識し、適切に表示するため、「cat」を実行するだけではわかりませんファイルに:

cat utf16file.txt | iconv -f UTF-16LE -t ASCII | hexdump -C 

これは、16進文字コードとASCII文字が右側にあるレイアウトを示しています。-f" from"で異なるエンコードを試すことができます。パラメータを使用して、何を扱っているかを把握します。

iconvがシステムで使用できる文字セットをリストするには、「iconv -l」を使用します。

ファイルの名前変更について昨日または前日質問があり、タスクに使用できるPerlスクリプト rename.pl を示しました。問題領域は、奇妙な文字がどのようにエンコードされるかを知り、音訳の正しいシーケンスを考案することです。私はおそらく、すべてのマッピングを順番に実行するスクリプトの適応でそれを行うでしょう。一度に1文字ずつ実行するのは面倒です。

質問:プレフィックス/サフィックスを使用して名前を変更する方法

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top