
この場合、生成された.txtファイルを使用してフォルダがあります。ドラッグ、コピー、貼り付けAdobe Acrobat PDFおよびOSXのテキストエディタで。私はvimでこれらのファイルを編集してきました。 grepを使ってこのファイルでコメントを見つけます。例えば、
grep -c "\[t\]" Herbert*
[t]
はコメントであり、ディレクトリには名前プレフィックスHerbert*
(たとえば、、Herbert-02-Transformation.txt
)Herbert-14-Classification.txt
が付いた22個のファイルがあります。問題は、grep
検索文字列が1つのファイル()でのみ見つかるのですHerbert-03-Square.txt
が、同じコメントがファイルごとに複数回表示されることです。
converted
間違ったファイルを開くと、ステータスバーに表示されます。
"Herbert-02-Transformation.txt" [converted] 276L, 57171C
unix.stackの投稿元のファイルの特殊文字がPDFからvimへのプロセスで生き残って問題を引き起こしているようですgrep
。粗い文字を削除し、正しい文字を手動で挿入しました:digraphs
。編集したファイルの一部はgrepで検索できますが、他の編集されたファイルは検索できません。使ってみましたが、
:e Herbert-02-Transformation.txt
:set encoding=utf-8`
:w
しかし、上記のようにファイルはまだ開いています。それではgrep
、動作するファイルと機能しないファイルのエンコーディングを比較する方法を理解する必要があると思います。詳しく説明する適切なヘルプページがあります。ファイル検出を設定する方法この問題を避けるために、私はこの問題を調査するのに1.5時間以上費やしていましたが、これは良い質問だと思います。
答え1
最も簡単な方法は、問題ファイルの1つから次に数行を渡すことですod
。
head Herbert-02-Transformation.txt | od -c
あるいは、最初の行に奇妙な点がない場合は、特定の文字列とその周囲のいくつかの文字を探します。
od -c Herbert-02-Transformation.txt | grep -C 5 "\["
たとえば、
$ echo "lorem ipsum [t] dolor sit amet" > foo.txt
$ od -c foo.txt
0000000 l o r e m i p s u m [ t ]
0000020 d o l o r s i t a m e t \n
0000037
「奇妙な」文字が表示されますod
。
別の便利なツールは、file
ファイル形式やその他の情報を返します。
$ file --mime foo.txt
foo.txt: text/plain; charset=us-ascii
答え2
そのエンコーディングに属さない不正な文字を含む既知のエンコーディングのテキストファイルがある場合に使用できますiconv -c -f charset -t charset file
。選択しました。
たとえば、ウムラウトを削除するには、次のようにします。
$ echo Nähkästchen | iconv -c -f us-ascii -t us-ascii
Nhkstchen
その文字が意味がある場合、検索と置換がより適切である可能性があります。実際に内部に何が入っているかによって異なります。