Import data from TSV to PostgreSQL via command line on Linux

Want to import data from TSV file to PostgreSQL via Command Line Interface (CLI) on Linux (Ubuntu/RedHat/CentOS…)?

Using pg-cmd, a Command Line Interface (CLI) client for PostgreSQL, you can import data from TSV file to PostgreSQL easily and fast. Direct Interaction or Scripting and Automation.

  • No need to install PostgreSQL client library.
  • Convenient to deploy to cloud. No need to run installation file, just uncompress and run, immediately.
  • Commands are entered into a terminal or command prompt, accessed from local or remote (like SSH).
  • Support Windows, Linux, and MacOS.

Download pg-cmd Linux version Download pg-cmd

Import data from TSV file to PostgreSQL via command line on Linux (Ubuntu/RedHat/CentOS…)

1. In interactive mode:

pg-cmd> load loadtype=replace
      > table=media_messages 
      > datafile=/data/media_messages.tsv 
      > delimiter=, 
      > quote=" 
      > header=y;

2. In batch mode:

pg-cmd dsn="pan:withdata@192.168.0.102/test" task=load loadtype=replace table=media_messages datafile=/data/media_messages.tsv delimiter=, quote=" header=y quit=y

“loadtype=replace” will delete all data in table before inserting.

See parameters detail.


More about pg-cmd – Command Line Interface (CLI) tool for PostgreSQL

TSV → PostgreSQL reference

Type mapping

Value kindin TSVin PostgreSQL
Int1234integer
Bigint9007199254740993bigint
Decimal1234.56numeric(p,s)
Float1.234e+10double precision
Textunquoted; a tab in the value splits the columnvarchar(n)
Long textunquoted; newlines break the rowtext
Date2026-09-18date
Datetime2026-09-18 14:30:00timestamp
Binarynot representablebytea
BooleanTRUE / FALSEboolean
JSONthe whole JSON value as-is (its own quotes stay)jsonb

Dialect differences

TSV is a file format and PostgreSQL is a database server, so the target has to be told the types the file never carried – the rows below are where the two sides diverge.

Propertyin TSVin PostgreSQL
port—5432
identifiersRarely used, which is exactly why tabs in data break it"double quotes"
row limit—LIMIT n
datesConventional text: 2026-09-18 or 2026-09-18 14:30:00timestamp, timestamptz, date, time
long text—TEXT
binaryNot supported - must be encodedBYTEA
separatorTab—
encodingNo declaration - UTF-8 works only with a BOM—
typingNone - every field is text—
shapeFlat table, optional header rowTables of rows and columns
ceilingNo formal limit—

Command line

SideCommand
PostgreSQLpg_dump or COPY ... TO
PostgreSQL (load)COPY ... FROM

Convert your data online, free

Free in-browser converters for CSV, Excel, JSON, XML and SQL: Withdata Online Data Conversion. Large files, batch conversion or scheduling? See the offline desktop apps, or browse all data conversion tools.

New to the format? Read what a TSV file is (and how it differs from CSV).


Posted

in

by