ラテン語以外の文字でfmtコマンドをどのように使用しますか?

ラテン語以外の文字でfmtコマンドをどのように使用しますか?

ギリシャ語でいくつかのテキスト出力形式を指定するには、fmtを使用する必要がありますが、ラテン文字と同じようには機能しません。たとえば、次の15文字の文章を考えてみましょう。

ラテン文字の場合:

 $echo "Have a nice day" | fmt -w 16
 Have a nice day

しかし、奇妙なことに、ビラテン文字の場合:

 $echo "Ηαωε α νιψε δαυ" | fmt -w 16
 Ηαωε α
 νιψε δαυ

実際、上記の文字列の場合、改行なしで印刷される最小値は次のとおりです-w 28

 $echo "Ηαωε α νιψε δαυ" | fmt -w 28
 Ηαωε α νιψε δαυ
 $echo "Ηαωε α νιψε δαυ" | fmt -w 27
 Ηαωε α νιψε
 δαυ

これが起こる理由と解決策(可能な場合)を説明できる人はいますか?

ベストアンサー1

あなたの質問に答えると、ギリシャ文字は、ラテン語以外の文字、Unicode文字、および次の理由で機能しません。

同じではない基準、fmtはUnicodeをサポートしていません。

https://en.wikipedia.org/wiki/Fmt

補足説明

残念ながら、質問の2番目の部分はこれを行う方法についてです。

最近では、Heninger、Unicode Line Breaking Algorithm、2015-06-01など、Unicodeをラップする方法に関する技術レポートがあるようです。http://www.unicode.org/reports/tr14/ただし、これは単なる仕様であり、実際の実装やソフトウェアの運用事例については言及していないようです。リストされた電子メールを介して作成者に連絡できます。

ウィキペディアの記事に記載されており、fmt利用par可能なので、apt-getあなたが投稿したテキストでそれを試してみることにしました。

しかし、成功しませんでした。それでも、希望の方法で仕上げられていません。

$ echo "Ηαωε α νιψε δαυ" | par 16gr
Ηαωε α
νιψε δαυ

このmanページは非常に難しく、作成者も次のように警告します。not well-written for the end-userしかし、決心したら読んでみることができます。

おすすめ記事