アッ

アッ

たとえば、一部の無効な文字を含む大容量(〜180 MB)xmlファイルがあります。

<Data ss:Type="String">7402953^@</Data>

この^@部分を削除する必要があります。この作業は完了する必要があります

sed -i 's/\^@//g' /tmp/large.xml

ただし、不明な理由で文字列が私の大きなXMLファイル内にある場合、期待どおりに機能しません。ファイルサイズがほんの数KBにすぎない場合は、sed正しく機能します。

バグのように見えますが、作業があまりにも明白なので不可能だと思います。私は何が間違っていましたか?

ベストアンサー1

あなたの質問によると、(例がないため)^@大きなファイルでは、実際には2文字(^および@)ではなく印刷できない文字の1つだと言いたいと思います。

Ctrl + v+を使用して端末に印刷できない文字を入力できますCtrl + 2。文字の代わりに
使うと大丈夫でしょう。 sed^@

また、印刷できない文字には必要ありませんので、エスケープシーケンスを削除してください。

おすすめ記事