sedコマンドを使用して著作権文字を削除しようとしています。しかし、うまくいきません。以下は使用される命令です。
sed 's/; © E/; (c)/g' input.txt > output.txt
しかし、vi
エディタを使用してファイルを開くと\251
。
助けてください?
答え1
みんなありがとうございます。
Perlで解決策を得ました。
perl -lape 's/[^[:print:]]*//g'
答え2
16進コードを使用してこれを行うには、不快なトリックを使用できます。たとえば、デフォルトのUTF-8 asciiでは、which isを使用して一重引用符の'
16\x27
進コードを印刷できます。
echo -e "\x27hello\x27"
'hello'
著作権記号は基本 ASCII テーブルの一部ではありませんが、拡張 ASCII コードに属します。 16進コードの組み合わせで拡張ASCIIを印刷することもできます。
(提案に基づいてhttp://www.fileformat.info/info/unicode/char/a9/index.htm)
echo -e '\xc2\xa9'
©
同様に、sedではこれらの16進コードを使用できます。
a="hello ©"
sed 's/\xc2\xa9/??/' <<<"$a" ##replacing copyright symbol with two questionmarks
hello ??
著作権記号を表す \xc2\xa9 が機能しない場合は、「円で囲まれたラテン大文字 C」である \xe2\x92\xb8 をお試しください。
また試してみてください\o251
(ゼロではなく小文字の「o」を使用)。