如何仅替换 sed 中出现在字母之前的符号?

如何仅替换 sed 中出现在字母之前的符号?

在我的文档中,有很多这样的情况:

[["A [["b [["8 [["c [["F [["1...

我需要做的是将双括号替换为单括号,但前提是模式后面有字母[[",而不是数字。所以它看起来像这样:

["A ["b [["8 ["c ["F [["1...

我试图做的是:

sed -i -e 's/[["[a-z A-Z]/["[a-z A-Z]/' ARD.json

它的作用是["[a-z A-Z]在每行的开头添加一个字符串。也尝试了同样的[[:alpha:]]表达方式,不起作用。

答案1

尝试:

$ sed -e 's/\[\[\("[[:alpha:]]\)/[\1/g' ARD.json
["A ["b [["8 ["c ["F [["1

使用 GNU sed:

sed -re 's/\[\[("[[:alpha:]])/[\1/g'

相关内容