我想删除我的文本文件中的这种模式[-.(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 > 就地编辑文件而不是打印到标准输出。 (去掉这个选项先检查这是否是你想要的输出)