我目前正在摆弄一个快要死的硬盘,在尝试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