私のテキストファイルからこれらの種類のコードを削除するにはどうすればよいですか? sedを試しましたが、バックスラッシュのため正しく機能しません。
ベストアンサー1
引用符付き文字列のほとんどの構文では、句読点文字の前のバックスラッシュは、句読点文字に一般的な特殊効果を持たせるのではなく、その句読点文字を表します。特に、2つのバックスラッシュは1つのバックスラッシュを表します。バックスラッシュの後に文字や数字が来ると、通常はその逆の役割を果たします。つまり、文字に特別な効果を与えます。
'…'
シェルの拡張を防ぐには、sedコードを一重引用符で囲みます。 sedコードで一重引用符を使用する必要がある場合'\''
(quote-backslash-quote-quoteを使用してください。最初の引用符は一重引用符セグメントを終了し、先頭にバックスラッシュがあるため文字通り解釈される引用符文字があります。最後の引用符は新しい一重引用符セグメントを開始します。
Sedは、少数のバックスラッシュシーケンスを置き換える必要がある場合に最適なツールです。 seds
コマンドは、二重バックスラッシュを使用してバックスラッシュを表します。s
各バックスラッシュシーケンスに連続コマンドを使用します。結果バックスラッシュ自体が置き換えられないように、デュアルバックスラッシュをバックスラッシュに変換する操作を最後に配置します。ここで最後のコマンドは、番号付きのグループにするために正規表現のすべての.
文字を表しました\(.\)
(ここでバックスラッシュは角かっこを特殊にします)。基本正規表現構文sed)\1
代替テキストのグループを表します。
sed -e 's/\\u003c/</g; s/\\u003e/>/g; s/\\n/\n/g; s/\\\(.\)/\1/'
あるいは、変換後に任意の数に一連のバックスラッシュを変換するには、\u
Perlを使用できます。パールにs
オペレーターこれはsedのs
コマンドと似ていますが、正規表現の構文が少し異なります。そして、代わりにPerlコードを書くことが可能になりました。
perl -pe 's/\\u([0-9a-f]{4})/chr($1)/eg; s/\\n/\n/g; s/\\(.)/$1/g'