我想在所有文件中以递归方式替换包含括号的特定指令。
例如,
mov r1, [r1, r2]
与
sub [r8, r9], r10
当我使用
时 sed -i.bak "s/mov r1, [r1, r2]/sub [r8, r9], r10/g" file.S
它不起作用。
我该怎么做?
答案 0 :(得分:4)
两件事。
因此:
's/mov r1, \[r1, r2\]/sub [r8, r9], r10/g'
在编制正确的脚本时,您可以跳过内联编辑。像这样:
sed 's/mov r1, \[r1, r2\]/sub [r8, r9], r10/g' file.S
答案 1 :(得分:2)
尝试使用转义括号's/mov r1, \[r1, r2\]/sub \[r8, r9\], r10/g'
。
答案 2 :(得分:0)
转义括号 - [] - 在sed的替换命令中将按照您期望的方式处理您的文件。这是您使用括号转义重写的命令:
sed 's/mov r1, \[r1, r2\]/sub [r8, r9], r10/g' file.S