我在 bash 中从 PDF 文件复制文本 -vi
我得到如下行:
echo <93>The Hypotenuse is $hypotenuse<94>
我尝试vi
通过以下方式改变它:
s/<93>/"/g
但:
E486: Pattern not found: <93>
并通过sed
:
sed 's/'`echo "\093"`'/"/g' par.sh
和:
sed 's/'`echo "\094"`'/"/g' par.sh
和:
sed 's/\<93\>/\"/g' aa.sh
echo В“The Hypotenuse is $hypotenuseВ”
你能告诉我应该用什么吗?
答案1
在六您需要输入 2 个特殊字符中每一个的按键序列,而不是其显示的 ASCII 字符(如果将光标放在它们上,您将看到整个 ASCII 序列突出显示):
- Ctrl+ v, x, 9,
3代替
<93>
- Ctrl+ v, x, 9,
4代替
<94>
所以搜索命令看起来像这样:
:%s / Ctrl+ v, x, 9, 3/"/g
答案2
通过sed
,您可以使用文字字符:
sed -e 's/”/"/g' -e 's/“/"/g' file
或perl
与 Unicode 代码点一起使用:
perl -CSD -pe 's/\x{201C}|\x{201D}/"/g' file
答案3
这是另一种方式,但使用 perl。
perl -i.bak -pe 's/[^[:ascii:]]//g' file
- -i 标志创建原始文件的备份。
答案4
在 StackOverflow 中发现了类似的问题,这个解决方案有效:
iconv -f cp1252 -t utf8 输入文件.csv > 输出文件.csv
简短说明 - 字符采用 cp1252 编码,您可以将其转换为 utf8。