2016-03-23 35 views
0

"name: email" biçiminde büyük bir metin dosyanız var. Ayrıca, ad ve e-posta sütunlarına sahip bir tablo oluşturdum.Ubuntu'da Postgres'e bir metin dosyası içe aktarılsın mı?

Metin dosyasını tabloya nasıl yüklerim?

Textfile benim ubuntu sunucuda olduğunu ve komutları

benim veritabanına metin dosyasını almak için sırayla sonraki Ne yapacağız
sudo -u postgres psql 
\connect <username>" 

kullanarak psql için bağladıysanız?

cevap

0

psql

Copy içine ve tabloların dışarı veritabanında kopya verilerini yapmak sağlayan bir \COPY komutu vardır. ,

\COPY tablename(name,email) FROM '/path/to/file' DELIMITER ':' CSV 

bir hata ERROR: missing data for column "name" alırsanız:

  • ikili
  • sekme İhtiyacın olan
  • csv

ayrılmış ayrılmış: Bu dahil olmak üzere birçok modları destekler Bu, dosyanızın sonunda boş bir satır olduğu anlamına gelir onu kaldır.

+0

Adı olan bir satır varsa: fwef: [email protected]? e-postada bir ':' var. – Anh

+0

@Anh sonra metin dosyasını bir CSV uyumlu formata dönüştürmeniz gerekir. sed -E/:(.*)$/: "\ 1"/'/ path/to/file>/path/to/file_converted', "e-posta" sütununu tırnak içine alacak ve böylece yalnızca iki tane olacak. sütunlar. – AlexM

+0

Öyleyse, bu teklifin söz konusu olduğunda veritabanına nasıl aktarırım? Ayrıca, txt’imde her satırın her birinde '^ M’ olduğunu fark ettim. Örneğin, ad: email^M – Anh