cp:エラーメッセージにはどのような引用符が使用されますか?

cp:エラーメッセージにはどのような引用符が使用されますか?

現在死んでいるハードドライブに触れていますが、ハードドライブ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(より一般的にはすべての出力は人間が読むことができる)でエラーメッセージを出力し、通常はテキストベースのツールを使用して処理するのが簡単です。LANGC

関連情報