2012-09-05 39 views
0

我試圖用sed更新一些SQL命令,但得到unterminated S'command`桑達未結束的'S'命令多搜索和替換

命令:

sed -i -f commands.sed mySql.sql 

commands.sed

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

你知道爲什麼嗎?

謝謝你的時間!

+0

可能重複http://stackoverflow.com/questions/6350800/sed-multiline精神來處理多換人-replacement-question) – 2012-09-05 09:15:10

+1

Im我認爲這不是重複的,因爲它涉及從文件中讀取那個問題不是 –

回答

3

sed作品以線爲主。你的腳本在模式中包含換行符。所以抱怨的第一線,

s;  if @ARI is not NULL 

這顯然是一個未終止的替代與s。你可能會更好過使用Perl的正則表達式的

perl -0777 -ne 's/FROM\nLINE\n/TO\nTHIS\n/g;print' 
[桑達多更換問題(的
+0

>你的腳本包含換行//謝謝:-)這是Python中經常出現的問題 – setevoy