GNU/Linux >> Linux の 問題 >  >> Linux

ブラケットのペアの間のすべてを削除するためにワンライナーをSedしますか?

角かっこ[]の間にある不要なものでいっぱいのテキストを処理しています。ブラケットは自分で削除できるので、それを行うためにワンライナーは必要ありませんが、ブラケット間のすべてを削除するワンライナーが必要です。

角かっこではなくかっこ()はどうですか?

承認された回答:

[some text]を置き換えます 空の文字列によって。ネストされた角かっこを解析したくないと仮定すると、some text 角かっこを含めることはできません。

sed -e 's/[[^][]*]//g'

角かっこ式の[^][]に注意してください [以外のものと一致する または]] 最初に来なければなりません。通常、] 文字セットを終了しますが、それがセットの最初の文字である場合(ここでは、^の後) 補完文字)、] 自分自身を表します。

ネストされた角かっこを解析する場合、または角かっこで囲まれたテキストが複数行にまたがる可能性がある場合、sedは適切なツールではありません。


Linux
  1. Linux –すべてがファイルですか?

  2. Sed:最初の文字列を除く文字列のすべての出現を削除しますか?

  3. SedでBlackslashをエスケープしますか?

  1. シェルコマンドを使用してASCIIファイルの最初のN行を削除するにはどうすればよいですか?

  2. ワンライナー対スクリプト?

  3. 一致の2番目と2番目の最後の発生の間のすべてを削除しますか?

  1. Sedを使用してパターン範囲間の行を検索および置換

  2. sed を使用して空行を削除する

  3. sedを使用して、ファイル内の行の範囲内のテキストを検索して置換します