我想在所有文件中递归地用另一条指令替换包含括号的特定指令。
例如,
mov r1, [r1, r2]
和
sub [r8, r9], r10
当我使用
sed -i.bak "s/mov r1, [r1, r2]/sub [r8, r9], r10/g" file.S
它不起作用。
我怎样才能做到这一点?
两件事情。
因此:
's/mov r1, \[r1, r2\]/sub [r8, r9], r10/g'
在制定正确的脚本时,您也许可以跳过内联编辑。像这样:
sed 's/mov r1, \[r1, r2\]/sub [r8, r9], r10/g' file.S
尝试使用转义括号's/mov r1, \[r1, r2\]/sub \[r8, r9\], r10/g'
。
在 sed 的替换命令中转义括号 -- [ ] -- 将按照您期望的方式处理您的文件。这是用括号转义的命令重写的:
sed 's/mov r1, \[r1, r2\]/sub [r8, r9], r10/g' file.S