以下を含むファイルがあります。
<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