Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^3: selecting columns from a tab-separated-values file

by spacebar (Beadle)
on Jan 22, 2013 at 03:05 UTC ( #1014542=note: print w/ replies, xml ) Need Help??


in reply to Re^2: selecting columns from a tab-separated-values file
in thread selecting columns from a tab-separated-values file

You can't reorder the output fields with 'cut', but if you have 'sed' you can do this:

$ cat t FIRST MIDDLE LAST STRNO STRNAME CITY STATE ZIP $ sed -n 's/\(.*\t\).*\t\(.*\t\).*\t.*\t\(.*\t\).*\t.*/\2\1\3/p' t LAST FIRST CITY


Comment on Re^3: selecting columns from a tab-separated-values file
Download Code
Re^4: selecting columns from a tab-separated-values file
by Lotus1 (Chaplain) on Jan 22, 2013 at 04:35 UTC
    You can't reorder the output fields with 'cut'

    Isn't that what I just said? Maybe you intended to reply to mildside.

    ...if you have 'sed' you can do this...

    I have sed but I prefer Perl.

    update: So I couldn't resist trying this sed command and found that it works for the input provided but as soon as you add more fields at the end it breaks.

    Given this input file:

    FIRST MIDDLE LAST STRNO CITY STATE ZIP 1 2 + 3 4 5 FIRST MIDDLE LAST STRNO CITY STATE ZIP 1 2 + 3 4 FIRST MIDDLE LAST STRNO CITY STATE ZIP

    You get this output:

    ZIP FIRST MIDDLE LAST STRNO CITY 3 STATE FIRST MIDDLE LAST STRNO 2 LAST FIRST CITY

    The greedy '.*' regex expressions cause the regex engine to match from the right and work back. '\1' ends up holding everything on the left that remains unmatched. For the first line \1 holds FIRST    MIDDLE    LAST    STRNO        CITY    .

    Here is a version that works.

    C:\b\perlmonks\commands>sed -n "s/^\([^\t]*\t\)[^\t]*\t\([^\t]*\t\)[^\ +t]*\t[^\t]*\t\([^\t]*\).*/\2\1\3/p" sedtest.csv LAST FIRST CITY LAST FIRST CITY LAST FIRST CITY

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1014542]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (11)
As of 2014-10-02 17:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    What is your favourite meta-syntactic variable name?














    Results (69 votes), past polls