文字列「???」の出現をすべて削除するにはどうすればいいですか?ファイルを保存して保存しますか?Unix文字の出現をすべて削除して保存する
これまで私のアプローチ:
cat file.txt | sed -ie '/s/???//' file.txt
私は次のエラーを取得するしかし:
sed: -e expression #1, char 4: unknown command: `?'
文字列「???」の出現をすべて削除するにはどうすればいいですか?ファイルを保存して保存しますか?Unix文字の出現をすべて削除して保存する
これまで私のアプローチ:
cat file.txt | sed -ie '/s/???//' file.txt
私は次のエラーを取得するしかし:
sed: -e expression #1, char 4: unknown command: `?'
あなたはこのsed
コマンドを使用することができます。
sed -i 's/???//g' file.txt
使用する理由はありませんcat
ここにsed
はファイル上で直接操作してiを保存できますtインラインで。
はまた、他の正規表現のフレーバーとは異なり、特別な正規表現のメタ文字として?
を扱わないsed
のデフォルトの正規表現エンジンであるBRE(基本正規表現)は、したがって、ここで?
をエスケープする必要がないことに注意してください。
私は疑問符を逃れるだけでなく、あなたが**エスケープしてはいけないと思っています。私はsedにあまり経験はありませんが、[このドキュメント](https://www.gnu.org/software/sed/manual/html_node/Regular-Expressions.html)から、私は、エスケープすること(バックスラッシュで接頭辞を付けること)はあなたは実際にはそれを正規表現演算子に変換します。少なくともこれはGNU sedに当てはまります。 – user1934428
はい、GNU sedでは、デフォルトのBREモードで疑問符をエスケープしないでください。 – anubhava
@anubhavaファイルの内容の一部 –
'' sed ''/??? // g 'file.txt' – anubhava
@anubhavaこれを答えとして追加してください。 'cat ... |' *使用しないでください:)。それは私が貢献しなければならないすべてのものであり、それだけで答える価値はありません。ありがとう! – cxw