ファイルから特殊文字を削除する方法は?

ファイルから特殊文字を削除する方法は?

以下を含むファイルがあります。

<class>
these are special @ $ characters / < > & " '
</class>

。間にある特殊文字をすべて削除したいと思います<class> </class>

このコマンドを試しました。

sed  "s/[^a-zA-Z0-9(<.class>)(<\/class>)/ /g" file.txt

上記のコマンドでは、文字、数字、ラベルを保持しようとしましたが、他のすべての項目は削除する必要があります。

しかし、それは私に望む結果を与えません。

ベストアンサー1

ブロックが1つだけで、class各ラベルが別々の行にあると仮定すると、GNU awkは次のように動作します。

awk '/<\/class>/{p=0};p{gsub(/[^A-Za-z0-9]/," ")};/<class>/{p=1};1' file.txt

おすすめ記事