![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !! |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| sort columns by field | kamel.seg | Shell Programming and Scripting | 4 | 02-20-2008 03:50 AM |
| how to numeric sort on field time | rahulspatil_111 | Shell Programming and Scripting | 1 | 04-27-2007 08:52 AM |
| Sort - only one field appears in output? | miwinter | UNIX for Dummies Questions & Answers | 1 | 07-24-2006 07:47 AM |
| field separator as regexp | Abhishek Ghose | Shell Programming and Scripting | 2 | 02-15-2006 05:49 PM |
| how to include field separator if there are blank fields? | ReV | Shell Programming and Scripting | 19 | 07-13-2005 01:50 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
|
||||
|
||||
|
How do I specify tab as field separator for sort?
I'm trying to use sort on a file with tab-delimited fields. I can't figure out how to tell sort to use the tab character as the field separator. I'm trying this on both an HP Unix system and on OS X (using bash on both).
Things I've tried: sort -t\t sort -t"\t" sort -t\"\t\" I've tried other things out of desperation, but nothing has worked so far. I've looked through all the messages on the forum but couldn't find an answer. I found one message where someone was using the third form above, but that didn't work for me. TIA, -Steve |
| Forum Sponsor | ||
|
|
|
#2
|
||||
|
||||
|
sort -t `/bin/echo '\t'`
|
|
#3
|
||||
|
||||
|
Thanks for the quick reply, but that doesn't seem to work. Here's a sample input file where I've converted the tabs to vertical bars:
a album|c song|2 b album|d song|2 a album|a song|4 a album|b song|1 b album|z song|1 b album|a song|3 a album|f song|3 b album|c song|4 (The real file is an exported playlist from iTunes. This is a simplified test version.) I want to sort by album, then track number. With this file, sort -t\| -k 1,1 -k 3,3n works fine. But with the real file that contains tabs, nothing works. I tried sort -t `/bin/echo '\t'` -k 1,1 -k 3,3n but it sorts by the entire line just like everything else I've tried. |
|
#4
|
||||
|
||||
|
sort -t "`/bin/echo '\t'" -k 1,1 -k 3,3n
|
|
#5
|
||||
|
||||
|
Thanks but still no luck. On OS X that still sorts by the entire line. On the HP system, it's rejected as invalid syntax. (I removed the character after the opening double quote since that must be a typo.)
|
|
#6
|
||||
|
||||
|
sorry for the typo!
does this sort by the first field? sort -t "`/bin/echo '\t'`" -k 1,1 |
|
#7
|
||||
|
||||
|
Ok, "`/bin/echo '\t'`" did it! Thanks very much for your help and perseverance.
I'm not familiar with the "backwards" single quote. What does that do? (And what do you call it?) |
||||
| Google The UNIX and Linux Forums |