[pgsql-jp: 33638] Re: EOF の問題について
Yasuharu Ninomiya
ninomii @ fml.nirs.go.jp
2004年 7月 13日 (火) 11:40:57 JST
毎度お騒がせしています二宮です。
皆様、本当に暖かいアドバイス有り難うございます。
無事、改行コードの問題は解決致しました(EOFの問題ではなかったようです)。
感謝致します。
失敗の原因は文字変換ツールiconvで改行コードも変換できている
と思い込んでいた為でした。
仲村さんのお教え下さいましたNFK変換ツールと
もりさんのお教え下さいましたcatコマンドでの改行コードの変換の
どちらでも無事、テーブルへのデータの取り込みが成功致しました。
本当に有り難うございます。
二宮
下記詳細;
改行と文字code変換,成功方法(EOFではない);成功
ポイント;文字変換ツールiconvでは改行コードは変換できない。
改行と文字code変換,成功方法1;;2004.7.の仲村さんのアドバイスに従う。
OSX用変換ツールMacNKF_OSX1.4使用
(http://www.vector.co.jp/soft/mac/util/se285278.html?yよりdownload)
(使用方法;backup済みのfileをアイコンにdropするだけ。変換選択メニューで改行
コード変換も選択し、EUC-JPとUnixの変換コードを選択。瞬時にfileが変換される)。
g4almi:/Users/shared/id1 ninomiya$ emacs id1promtfse3nkf.txt
変換をemacsで確認;
V$STAT6_02|10093|-|0.942|0.936|aAGAATca
V$AP1_Q4_01|10094|+|0.918|0.857|agAATCAt
V$GATA_Q6|10094|-|0.825|0.815|aGAATCa
V$EN1_01|10095|-|0.806|0.794|gaATCAT
最後の行の改行には特に変換前と後で見た目には違いはない。また、¥nは見当たらな
い。この改行は以前のemacsでの手入力したものとは異なっているコードと思われる
(emacsで改行や最後の行に¥n入れてもエラーになる;後述の参考情報04.7.13を参照)
。
test-# ¥copy id1tfs from /Users/shared/id1/id1promtfse3nkf.txt with
delimiter '|'
¥.
test-# select * from id1tfs limit 10;
ERROR: syntax error at or near "ERROR" at character 1
(このエラーは直前のcopy 処理が終了していない為生じたと思われる。)
test=# select * from id1tfs limit 10;
name | posi | strand | hm | tfs | seq
------------+------+--------+-------+-------+----------------
V$CAP_01 | 1 | + | 0.984 | 0.979 | CCATTttg
V$CEBPA_01 | 1 | + | 0.858 | 0.726 | ccATTTTgtggatg
V$CEBP_Q2 | 1 | + | 0.79 | 0.716 | ccATTTTgtggatg
V$CIZ_01 | 1 | - | 0.8 | 0.746 | ccaTTTTGt
V$EVI1_06 | 1 | - | 0.791 | 0.741 | ccatTTTGT
V$GKLF_01 | 1 | - | 0.905 | 0.8 | CCATTttgtggatg
V$HNF3_Q6 | 1 | - | 0.801 | 0.789 | ccATTTTgtggat
V$HOXA4_Q2 | 1 | - | 0.939 | 0.856 | CCATTttg
V$PAX2_02 | 1 | - | 0.951 | 0.94 | cCATTTtgt
V$SOX5_01 | 1 | - | 0.815 | 0.706 | ccATTTTgtg
(10 rows)
test=#
成功。
改行と文字code変換,成功方法2;bashでコマンドで施行例;
2004.7.10; pgsql-jpの会のもりさんのアドバイスに従う。
g4almi:/Users/shared/id1 ninomiya$ cat id1promtfse3.txt | tr '¥r' '¥n' >
id1promtfse3return.txt
変換前後でemacsで見た目に差はない。;id1promtfse3return.txt
V$STAT6_01|10093|-|0.960|0.933|aaGAATCa
V$STAT6_02|10093|-|0.942|0.936|aAGAATca
V$AP1_Q4_01|10094|+|0.918|0.857|agAATCAt
V$GATA_Q6|10094|-|0.825|0.815|aGAATCa
V$EN1_01|10095|-|0.806|0.794|gaATCAT
test-# ¥copy id1tfe3 from /Users/shared/id1/id1promtfse3return.txt with
delimiter '|'
¥.
test-# select * from id1tfe3 limit 10;
ERROR: syntax error at or near "select" at character 21
test=# select * from id1tfe3 limit 10;
name | posi | strand | hm | tfs | seq
------------+------+--------+-------+-------+----------------
V$CAP_01 | 1 | + | 0.984 | 0.979 | CCATTttg
V$CEBPA_01 | 1 | + | 0.858 | 0.726 | ccATTTTgtggatg
V$CEBP_Q2 | 1 | + | 0.79 | 0.716 | ccATTTTgtggatg
V$CIZ_01 | 1 | - | 0.8 | 0.746 | ccaTTTTGt
V$EVI1_06 | 1 | - | 0.791 | 0.741 | ccatTTTGT
V$GKLF_01 | 1 | - | 0.905 | 0.8 | CCATTttgtggatg
V$HNF3_Q6 | 1 | - | 0.801 | 0.789 | ccATTTTgtggat
V$HOXA4_Q2 | 1 | - | 0.939 | 0.856 | CCATTttg
V$PAX2_02 | 1 | - | 0.951 | 0.94 | cCATTTtgt
V$SOX5_01 | 1 | - | 0.815 | 0.706 | ccATTTTgtg
(10 rows)
成功。
参考情報04.7.13;
Emacsで改行や最後の行末に¥nを手で入力したid1promtfse3.txtを使用しても下記の
ように受け付けてくれなかった。しかし上記のNKFやcat id1promtfse3.txt | tr
'¥r' '¥n' > id1promtfse3return.txtで施行した結果として改行もしくは、最後の行
末¥nが入っていても受け付けてくれた。Emacsでみると見た目には変換前と後では差
がなかった。
変換前後で見た目に違いない;id1promtfse3return.txt
V$STAT6_01|10093|-|0.960|0.933|aaGAATCa
V$STAT6_02|10093|-|0.942|0.936|aAGAATca
V$AP1_Q4_01|10094|+|0.918|0.857|agAATCAt
V$GATA_Q6|10094|-|0.825|0.815|aGAATCa
V$EN1_01|10095|-|0.806|0.794|gaATCAT¥n(ここが改行でも同じ)
test=# select name, posi, strand, hm, tfs, seq into id1tfe3 from
id1tfs;SELECT
test=# delete from id1tfe3
test-# ¥copy id1tfe3 from /Users/shared/id1promtfse3.txt with delimiter '|'
/Users/shared/id1promtfse3.txt: No such file or directory
test-# ¥copy id1tfe3 from /Users/shared/id1/id1promtfse3.txt with delimiter
'|'
¥.
ERROR: literal newline found in data
HINT: Use "¥n" to represent newline.
CONTEXT: COPY id1tfe3, line 111535:
"V$EN1_01|10095|-|0.806|0.794|gaATCAT¥n"
test-#
失敗。
pgsql-jp メーリングリストの案内