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
存在する肉表示されるASCII文字ではなく、2つの特殊文字のそれぞれにキーシーケンスを入力する必要があります(カーソルをその上に置くと、ASCIIシーケンス全体が強調表示されます)。
- Ctrl+ v、x、9、
3置換
<93>
- Ctrl+ v、x、9、
4置換
<94>
したがって、検索コマンドは次のようになります。
:%s / Ctrl+ v, x, 9, 3/"/g
答え2
Pass 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に変換できます。