現在死んでいるハードドライブに触れていますが、ハードドライブcp
からデータを取得中に次のエラーが発生します。
cp: error reading ‘brokenFile’: Input/output error
# comparison: backtick: `, apostrophe '
sed
これで、エラーメッセージを新しいメッセージに変換する呼び出しを使用してcp
失敗したファイルを再度コピーしようとしました(数回成功しました)。しかし、面白い引用は何ですか?開始/終了も異なります。バックティックやアポストロフィはありません。これを正規表現にコピー/貼り付けましたが、より良い方法はありますか?たぶん作成を使用しますか?
答え1
特定の文字を見つけるのに役立つコマンドは、Free recode(以前の GNU recode)です。
$ echo -n ‘’ | recode ..dump
UCS2 Mne Description
2018 '6 left single quotation mark
2019 '9 right single quotation mark
またはunicode
コマンドDebian で:
$ unicode ‘’
U+2018 LEFT SINGLE QUOTATION MARK
UTF-8: e2 80 98 UTF-16BE: 2018 Decimal: ‘
‘
Category: Pi (Punctuation, Initial quote)
Bidi: ON (Other Neutrals)
U+2019 RIGHT SINGLE QUOTATION MARK
UTF-8: e2 80 99 UTF-16BE: 2019 Decimal: ’
’
Category: Pf (Punctuation, Final quote)
Bidi: ON (Other Neutrals)
答え2
生成された文字はU+2018 LEFT SINGLE QUOTATION MARK
(‘
)とU+2019 RIGHT SINGLE QUOTATION MARK
(’
)です。これは、現在のロケールに基づいて生成された英語印刷の一重引用符です。現在のキーボードレイアウトに作成キーがある場合はCompose<'(開く引用符)と(閉じる引用符)Compose>'を使用して入力できます。
ただし、他のツールを使用してコマンド出力を処理する場合(たとえば、あなたの場合)、通常はsed
環境変数をに設定してローカルに変更する方が簡単です。このように、プログラムは純粋なASCII(より一般的にはすべての出力は人間が読むことができる)でエラーメッセージを出力し、通常はテキストベースのツールを使用して処理するのが簡単です。LANG
C