ファイルから<93> <94>シンボルを削除するには? 「」と同じ

ファイルから<93> <94>シンボルを削除するには? 「」と同じ

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+ vx93置換<93>
  • Ctrl+ vx94置換<94>

したがって、検索コマンドは次のようになります。

:%s / Ctrl+ v, x, 9, 3/"/g

答え2

Pass sed、リテラル文字を使用できます。

sed -e 's/”/"/g' -e 's/“/"/g' file

あるいは、perlUnicodeコードポイントで使用されます。

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に変換できます。

関連情報