4

以下は、データベースのタブ区切りのバックアップを作成するために使用するコードです。

mysqldump --user=**** --fields-enclosed-by=\" --lines-terminated-by="\n" --password=**** --host=localhost --tab=/path/to/folder ****

私が仕事に就けないのはこれです:

--lines-terminated-by="\n"

現在、MySQL データベースに TEXT カラムがある場合、次のように出力されます。

"1"    "A test post"    "This is an example of text on multiple lines.
\
As you can see this is how it places it in the txt file.
\
Blah blah blah"
"2"    "Another post"    "More text....."

これが私が達成しようとしているものです

"1"    "A test post"    "This is an example of text on multiple lines.\nAs you can see this is how it places it in the txt file.\nBlah blah blah"
"2"    "Another post"    "More text....."

ドキュメントによると、--lines-terminated-by=...を使用して出力する場合はサポートされてい--tabます。しかし、私はそれを機能させることができないようです。

4

1 に答える 1

3

得られる出力は、 のドキュメントSELECT ... INTO OUTFILEと一致しています。改行には、デフォルトのエスケープ文字 ( \. この--lines-terminated-byオプションは、フィールド内の改行がどのように表現されるかではなく、レコード区切りとして使用される文字を参照します。

から直接希望どおりの出力を作成するオプションはありませんがmysqldump、ファイルを後処理して必要な結果を得ることができます。たとえば、次のようにファイルをフィルタリングできます。

perl -pe 's/\\\n/\\n/'
于 2013-09-21T10:03:41.377 に答える