2016-03-28 10 views
1

SQL Server 2008でバルクロード用のXML形式ファイルがあります。TERMINATOR="\r\n"のインスタンスをTERMINATOR="\n"に置き換える必要があります。コマンドラインユーティリティFART.exeを使用しようとしています。どのように試しても、ユーティリティが文字を認識できるようには見えません。FART.exeを使用して r n(リテラル)を nに置き換える方法

私は、検索文字列のコンボとして渡ししようとした文字列を置換している:

\r\n \n 
"\r\n" "\n" 
""\r\n"" ""\n"" 
^\r^\n ^\n 
TERMINATOR=""\r\n"" TERMINATOR=""\n"" 
TERMINATOR=""^\r^\n"" TERMINATOR=""^\n"" 

と多くの、より多くの組み合わせを。 DOSコマンドをエスケープすることについて調べるすべての記事は、私に何か違うものを教えてくれる。本当に変わったことは、\r\n \nを使ってリテラルを置き換えたいだけでなく、ファイル内の各行の終わりに改行文字+改行文字を置き換えないことです。

私が編集する必要のあるフォーマットファイル。私は赤い下線きたラインが問題を引き起こしていると信じて:

コマンドウィンドウ出力Jreplを呼び出すから。

fart yourFile.xml \r\n \n 

するための唯一の内置き換える:

答えて

1

は、単に使用し、\nですべて\r\nリテラルを置き換えるために:それは、ユーティリティは、他のスクリーンショットから赤い下線回線に問題があることは明らかです大きい文字列TERMINATOR="\r\n"は、次に使用します:

fart -C yourfile.xml TERMINATOR=\x22\\r\\n\x22 TERMINATOR=\x22\\n\x22 

私はJREPL.BAT - 正規表現を使用できるという点でFARTよりはるかに強力であり、さらにいくつかの高度な機能が追加されています。 FARTに関連する唯一の制限は、一度に1つのファイルしか処理できないことです。 \nですべて\r\nリテラルを置き換えるために

jrepl \r\n \n /l /f yourFile.xml /o - 

引用付きリテラル検索文字列を使用して、より具体的にするには、\\として\qとバックスラッシュのようにエスケープ:

jrepl "TERMINATOR=\q\\r\\n\q" "TERMINATOR=\q\\n\q" /x /l /f yourFile.xml /o - 

または正規表現を使用して:

jrepl "(TERMINATOR=\q)\\r(?=\\n\q)" "$1" /x /f yourFile.xml /o - 
+0

こんにちはDbenham。残念ながら私が試みた最初のことは "fart yourFile.xml \ r \ n \ n"でしたが、うまくいきませんでした。私は結果を "0個のファイルに0個の出現箇所を置き換えました。一度に1つのファイルを見つけて置き換える必要があるので、代わりにjreplコマンドラインユーティリティを試してみてください。 help! – Ognennyy

+0

@Ognennyy - Hmmm。FARTでテストして、うまくいくように思えたので、それは奇妙です。JREPL – dbenham

+0

2つのスクリーンショットを投稿しました。 test.txt "/ o" test_new.txt "を実行すると、正しく動作して、(jarpl =" \ r \ n "ターミネーター= "\ n")。しかし、Jreplは私のxmlファイルが気に入らないようです。私のスクリーンショットをチェックしてください。私が出力をstdoutに送信するときのcmdウィンドウのもう1つのスクリーンショットは、そこに問題があることを明確に示しています。 @dbenhamはどう思いますか? Jreplは完全なXMLファイルで動作しませんか? – Ognennyy

関連する問題