3

sedを使用していくつかのSQLコマンドを更新しようとしていますが、unterminateds'command`を取得しています

指示:

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 に答える