3

たくさんのテキストファイルからこの刺激的な文字U+0092を取り除く方法はありますか?以下のすべてを試しましたが、機能しません。文字コード表からはU+0092+と呼ばれますcontrol

sed -i 's/\xc2\x92//' *
sed -i 's/\u0092//' *
sed -i 's///' *

ああ、私は方法を見つけました:

CHARS=$(python2 -c 'print u"\u0092".encode("utf8")')
sed 's/['"$CHARS"']//g'

しかし、これには直接的な方法がありますか?

4

2 に答える 2

3

試してみてくださいsed "s/\`//g" *。(私はgそれが見つけたすべてのバックティックを削除するように追加しました)。


編集:OPが削除したいのはバックティックではありません。

この質問の解決策に従うと、これは機能するはずです:

sed 's/\xc2\x92//g'

それを実証するために:

$ CHARS=$(python -c 'print u"asdf\u0092asdf".encode("utf8")')

$ echo $CHARS
asdf<funny glyph symbol>asdf

$ echo $CHARS | sed 's/\xc2\x92//g'
asdfasdf

すでに試したことがあるので、テキストファイルにあるものがU + 0092ではない可能性がありますか?

于 2011-12-20T06:56:24.933 に答える
1

これはあなたのために働くかもしれません(GNU sed):

echo "string containing funny character(s)" | sed -n 'l0'

これにより、sedが8進数で表示するように文字列が表示され、次のコマンドを使用します。

echo "string containing funny character(s)" | sed 's/\onnn//g'

nnnそれ/それらを削除するための8進数値はどこにありますか。

于 2011-12-20T11:02:22.520 に答える