これを削除するLinuxコマンド

これを削除するLinuxコマンド

私のテキストファイルからこのパターンを削除したいです[-.(D_)-]。 sedとawkにしてみましたが、結果はありません。

デフォルトでは、テキストファイルからこれらの文字間の[-すべての内容を削除したいと思います。-]

答え1

sedを使用してください:

sed 's/\[-.*-]//g'

例:

~ echo 'foo[-.(D_)-]bar' | sed 's/\[-.*-]//g'
foobar

エスケープされていない場合は、[角括弧式(文字リストまたは範囲を含む、この場合はリスト、、、)[-.*-]の先頭として扱われます。-.*

答え2

サンプルデータと出力を提供する方が良いでしょう。

入力.txt:

test1[-.(D_)-]test2

[-& を除去するには、-]以下を試してください。

sed -i "/\(.*\)[-.*-]\(.*\)/\1 \2/" Input.txt

[-&を維持するには、以下を試してください-]

sed -i "/\(.*\)[-.*-]\(.*\)/\1[--]\2/" Input.txt

出力:

test1[--]test2

-i>標準出力として印刷する代わりにファイルを編集します。 (必要な出力であることを確認するには、まずこのオプションを削除してください。)

関連情報