すべてのファイルで、角かっこを含む特定の命令を再帰的に別の命令に置き換えたい。
例えば、
mov r1, [r1, r2]
と
sub [r8, r9], r10
使うとき
sed -i.bak "s/mov r1, [r1, r2]/sub [r8, r9], r10/g" file.S
動作しません。
どうやってやるの?
2つのこと。
したがって:
'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のsubstituteコマンドで角かっこ-[]-をエスケープすると、ファイルが期待どおりに処理されます。角かっこをエスケープして書き直したコマンドは次のとおりです。
sed 's/mov r1, \[r1, r2\]/sub [r8, r9], r10/g' file.S