3

我正在尝试使用 sed 更新一些 SQL 命令,但得到unterminateds' 命令`

命令:

sed -i -f commands.sed mySql.sql

命令.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

你知道为什么吗?

谢谢你的时间!

4

1 回答 1

5

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

s;      if @ARI is not NULL

这显然是一个未终止的替换s。您最好使用 perl 的正则表达式来处理多行替换,本着

perl -0777 -ne 's/FROM\nLINE\n/TO\nTHIS\n/g;print'
于 2012-09-05T11:43:54.583 回答