sed unterminated` s'命令多行搜索和替换

时间:2012-09-05 09:12:03

标签: sed

我正在尝试使用sed来更新一些SQL命令,但是获取unterminated s'命令`

命令:

sed -i -f commands.sed mySql.sql

commands.sed

s;      if @ARI is not NULL
        begin
                exec spRun @Name='Txn', @NextValue=@Txn output
;       if @ARI is not NULL
        begin
                select @Txn= @Txn+ 1
;g

你知道为什么吗?

谢谢你的时间!

1 个答案:

答案 0 :(得分:4)

sed以线路为导向。您的脚本包含模式中的换行符。所以它抱怨第一行,

s;      if @ARI is not NULL

这显然是s未终止的替代。你可能最好使用perl的正则表达式来处理

的精神中的多行替换
perl -0777 -ne 's/FROM\nLINE\n/TO\nTHIS\n/g;print'