Problem with a tab separated file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem with a tab separated file
# 1  
Old 06-06-2012
Problem with a tab separated file

Hi,
I have created a tab separated file from the following input file.
Code:
ADDRESS1        CITY    STATE   POSTAL  COUNTRY LON LAT
32 PRINZREGENTENSTRASSE ROSENHEIM   BAYERN  83022 DEU   1212182 4785699
263 VIA DANTE ALIGHIERI BARI    PUGLIA  70122   ITA 1686233     4112154
30 VIA MILANO   TREVIGLIO       LOMBARDIA   24047 ITA   956961  4552289
2 KREUZWEG      ERSIGEN BERN    3423    CHE 759377  4709277
28 VICOLO DELLA FONTANA ROMA    LAZIO   00198   ITA 1250887     4191608
3 MUNCHPLATZ    10. BEZIRK-FAVORITEN    WIEN    1100    AUT     1636588 4815423
7 BAHNHOFSTRASSE  LANGNAU IM EMMENTAL   BERN    3550    CHE     778447  4693928
1 HASENBERG     ALTSTADT        SACHSEN 01067   DEU 1374604     5105173
3 PLACE DU 8 MAI 1945   SAULNES LORRAINE    54650 FRA   582300  4953234

As I was only interested in columns 1,2,4 and 5 and i wanted to reorganize it, I used the following awk command.
Code:
awk -F"\t" '{print $5"\t"$4"\t"$2"\t"$1}' infile.dat > outfile.dat

The above code has created the following output file.
Code:
COUNTRY	POSTAL	CITY	ADDRESS1
DEU	83022	ROSENHEIM       32 PRINZREGENTENSTRASSE
ITA	70122	BARI    263 VIA DANTE ALIGHIERI
ITA	24047   TREVIGLIO       30 VIA MILANO
CHE	3423    ERSIGEN 2 KREUZWEG
ITA	00198   ROMA    28 VICOLO DELLA FONTANA
AUT	1100    10. BEZIRK-FAVORITEN    3 MUNCHPLATZ
CHE	3550    LANGNAU IM EMMENTAL     7 BAHNHOFSTRASSE
DEU	01067   ALTSTADT        1 HASENBERG
FRA	54650   SAULNES 3 PLACE DU 8 MAI 1945

However, when i open this file with excel on Windows and i specify it is a tab delimited file, The complete row is shown as a single column. Whereas in UNIX when i check this file with the following command It shows that there are 4 columns.
Code:
cat WEUM.dat | head -5 | awk -F"\t" '{print $3}'

Am I missing something, how to fix this. I use the output file as an input to some java program, I tried debugging the java program and found out that the total row is considered as a single column, instead of 4 columns
# 2  
Old 06-06-2012
Your "\t"'s are causing the output to *display* with the tabs expanded and replaced with space characters. You need an actual tab character instead.
Code:
awk -F"\t" '{print $5"\t"$4"\t"$2"\t"$1}' infile.dat > outfile.dat

Delete the "\t"'s in the print command and instead, inside the double-quotes type <CTRL-V><CTRL-I> to insert an actual tab character. In vi use the ":set list" command to show you the tab characters as a "^I" and end-of-line as a "$".

Code:
awk '{print $5"^I"$4"^I"$2"^I"$1}' xx.dat$

Output redirected to a file, viewed in vi with :set list looks like this:
Code:
COUNTRY^IPOSTAL^ICITY^IADDRESS1$

Now any program expecting a tab-delimited file will see the actual tab characters and parse correctly.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Gawk output separated by tab

In the gawk below, I am trying to output the file tab-deliminated but don't think that is the correct syntax. Thank you :). gawk OFS='/t' '{sub(/-+/,"",$2); ar=$0} END{n = asort(ar) for (i = 1; i <= n; i++) print ar}' file (2 Replies)
Discussion started by: cmccabe
2 Replies

2. Shell Programming and Scripting

Read a tab separated file with empty column

Hi all, I'm trying to read a tab separated file and apply some functions on each column. I have an issue with empty column. Exemple: $ #cat with the sed to allow you to see my tab $ cat foo.txt| sed 's/\t/;/g' a;1;x b;;yI wanted to something like that: while read col1 col2 col3 do ... (4 Replies)
Discussion started by: maturix
4 Replies

3. Shell Programming and Scripting

How to replace & with and in tab separated file?

Hi, I have a tab separated. I want to replace all the "&" in 8th column of the file with "and" .I am trying with awk -F, -vOFS=\\t '{$8=($8=="&")?"and":$8}1' test> test1.txt My file is abc def ghk hjk lkm hgb jkluy acvf & bhj hihuhu fgg me mine he her go went has has & had hgf hgy ... (1 Reply)
Discussion started by: jagdishrout
1 Replies

4. UNIX for Dummies Questions & Answers

Filling a tab-separated file with known missing entries in columns

Hello all, I have a file which is tab separated like that: PHE_205_A TIP_127_W ARG_150_B MET_1150_A TIP_12_W VAL_11_B GLU_60_A TIP_130_W ARG_143_B LEU_1033_A TIP_203_W ARG_14_B SER_1092_A TIP_203_W THR_1090_A TIP_203_W SER_1092_A TIP_25_W ... (6 Replies)
Discussion started by: TheTransporter
6 Replies

5. Shell Programming and Scripting

replace row separated by tab

Dear users, I have this problem, this is the example: 123 (tab) A (tab) B (tab) C (tab) 456 where the (tab) is actually the \t delimiter. I need to replace the A B and C for D E and F, this is: 123 (tab) D (tab) E (tab) F (tab) 456 The thing is that my file is quite long and this... (2 Replies)
Discussion started by: Gery
2 Replies

6. UNIX for Dummies Questions & Answers

tab-separated file to matrix conversion

hello all, i have an input file like that A A X0 A B X1 A C X2 ... A Z Xx B A X1 B B X3 .... Z A Xx Z B X4 and i want to have an output like that A B C D A X0 X1 X2 Xy B X1 X3 X4 (4 Replies)
Discussion started by: TheTransporter
4 Replies

7. Shell Programming and Scripting

Convert a tab separated file using bash

Dear all, I have a file in this format (like a matrix) - A B C .. X A 1 4 2 .. 2 B 2 6 4 .. 8 C 3 5 5 .. 4 . . . ... . X . . ... . and want to convert it into a file with this format: A A = 1 A B = 4 A C = 2 ... A X = 2 B A = 2 B B = 6 etc (2 Replies)
Discussion started by: TheTransporter
2 Replies

8. Shell Programming and Scripting

Compare two columns separated by a tab

witam potrzebuje polecenia porownujacego koumny na podstawie n-ostatnich znakow danej linnijki tj mam 2 koumny AiB zawierajace ciag dowolnych znakow (dlugosci w kazdej linijce mga byc rozne wiec uzycie substra odpada) A B ewewewabc nbgujnnabc... (3 Replies)
Discussion started by: Toudi
3 Replies

9. UNIX for Dummies Questions & Answers

Sum up a decimal column in a tab separated text file and error handling

Hi, I have a small requirement where i need to sum up a column in a text file. Input file 66ab 000000 534385 -00000106350.00 66cd 000000 534485 -00013364511.00 66ad 000000 534485 -00000426548.00 672a 000000 534485 000000650339.82... (5 Replies)
Discussion started by: pssandeep
5 Replies

10. Shell Programming and Scripting

parse file into tab separated columns

Hello, I am trying to parse a file that resembles the last three groupings into something looking like the first two lines. I've fiddled with sed and awk a bit, but can't get anything to work properly. I need them separated by some delimiter. The file is some 23,000 lines of the stuff.... ... (9 Replies)
Discussion started by: dkozel
9 Replies
Login or Register to Ask a Question