Linux

Linux命令刪除這個

  • June 13, 2019

我想在我的文本文件中刪除這種模式[-.(D_)-]。我用 sed 和 awk 做了,但沒有結果。

基本上我想刪除我的文本文件中與這些字元[-之間的任何內容。-]

使用 sed:

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

例子:

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

如果不轉義[,[-.*-]將被視為括號表達式的開頭(包含一個列表或字元範圍,在本例中為列表-, ., *)。

如果您提供一些範例數據和輸出結果會更好。

輸入.txt:

test1[-.(D_)-]test2

如果你想刪除[-&試試這個-]

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

試試這個如果你想保留[-& -]

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

輸出:

test1[--]test2

-i > 就地編輯文件而不是列印到標準輸出。(刪除此選項以檢查這是否是您首先想要的輸出)

引用自:https://unix.stackexchange.com/questions/524585