我正在尝试使用tcl
命令分隔符“[]”替换文件中的字符串sed
例子:
string [$HelloWorld]
必须替换为$HelloWord
. 请注意,它没有括号,要修改的文件是 TCL 文件。我将如何使用sed
命令来做到这一点?
我试过这个:
sed -i 's@[$HelloWorld]@$HelloWorld@g' <file_path>
您需要转义[
,]
因为它们被解释为正则表达式中的字符类而不是文字方括号:
$ sed 's/\[$HelloWorld\]/$HelloWorld/g' file
string $HelloWord
您可以在此处使用捕获组:
$ sed 's/\[\($HelloWorld\)\]/\1/g' file
string $HelloWord
如果sed 's/[][]//g'
要从文件中删除所有方括号,请使用:
# First check changes are correct
$ sed 's/[][]//g' file
string $HelloWorld
# Store the change back to the file
$ sed -i 's/[][]//g' file
# Store changes back to the file and create back up of the original
$ sed -i.bak 's/[][]//g' file