splitting tab delimited strings


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting splitting tab delimited strings
# 1  
Old 07-29-2012
splitting tab delimited strings

hi
i have a requirement to input a string to a shell script and to split the string to multiple fields,
the string is copied from a row of three columns (name,age,address) in an excel sheet.
the three columns (from excel) are seperated with a tab when pasted in the command prompt, but when the
string is assigned to a variable, the tab disappears to a space.
code is given below
Code:
 
echo "Enter the string : \c"
read line
name=`echo $line | awk -F"\t" '{print $1}'`
age=`echo $line | awk -F"\t" '{print $2}'`
address=`echo $line | awk -F"\t" '{print $3}'`

output
Code:
+ echo Enter the string : \c
Enter the string : + read line
john teth       45      1st cross, stmark road
+ + echo john teth 45 1st cross, stmark road
+ awk -F\t {print $1}
name=john teth 45 1st cross, stmark road
+ + echo john teth 45 1st cross, stmark road
+ awk -F\t {print $2}
age=
+ + echo john teth 45 1st cross, stmark road
+ awk -F\t {print $3}
address=

i would like to get
name=john teth
age=45
address=1st cross, stmark road

can any one guide me ...
# 2  
Old 07-29-2012
In order to preserve the tabs, you must double-quote $line.

Simplest solution is to do the splitting with the read statement:
Code:
IFS=$'\t' read name age address

If your shell doesn't support that string syntax, then use a literal tab (control-v tab) in a single-quoted string.

Regards,
Alister

Last edited by alister; 07-30-2012 at 12:50 AM..
This User Gave Thanks to alister For This Post:
# 3  
Old 07-31-2012
I couldn't get it done by this way

Code:
IFS=$'\t' read name age address

i changed to

Code:
 
IFS=" " read name age address

and was working

thanks
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Replace a column in tab delimited file with column in other tab delimited file,based on match

Hello Everyone.. I want to replace the retail col from FileI with cstp1 col from FileP if the strpno matches in both files FileP.txt ... (2 Replies)
Discussion started by: YogeshG
2 Replies

2. Shell Programming and Scripting

Splitting delimited string into rows

Hi, I have a requirement that has 50-60 million records that we need to split a delimited string (Delimeter is newline) into rows. Source Date: SerialID UnidID GENRE 100 A11 AAAchar(10)BBB 200 B11 CCCchar(10)DDD(10)ZZZZ Field 'GENRE' is a string with new line as delimeter and not sure... (5 Replies)
Discussion started by: techmoris
5 Replies

3. UNIX for Dummies Questions & Answers

Need to convert a pipe delimited text file to tab delimited

Hi, I have a rquirement in unix as below . I have a text file with me seperated by | symbol and i need to generate a excel file through unix commands/script so that each value will go to each column. ex: Input Text file: 1|A|apple 2|B|bottle excel file to be generated as output as... (9 Replies)
Discussion started by: raja kakitapall
9 Replies

4. Shell Programming and Scripting

How to make tab delimited file to space delimited?

Hi How to make tab delimited file to space delimited? in put file: ABC kgy jkh ghj ash kjl o/p file: ABC kgy jkh ghj ash kjl Use code tags, thanks. (1 Reply)
Discussion started by: jagdishrout
1 Replies

5. Shell Programming and Scripting

Help with converting Pipe delimited file to Tab Delimited

I have a file which was pipe delimited, I need to make it tab delimited. I tried with sed but no use cat file | sed 's/|//t/g' The above command substituted "/t" not tab in the place of pipe. Sample file: abc|123|2012-01-30|2012-04-28|xyz have to convert to: abc 123... (6 Replies)
Discussion started by: karumudi7
6 Replies

6. UNIX for Dummies Questions & Answers

tab delimited file that is not tab delimited.

Hi Forum I have a tab delimited file that opens well in Openoffice calc (excel). But when I perform any operation in command line, it reads the file incorrectly. When I 'save As' the same file in office as tab delimited then it works fine. The file that I think is tab delimited is actually... (8 Replies)
Discussion started by: imlearning
8 Replies

7. Shell Programming and Scripting

splitting tab-delimited file with awk

Hi all, I need help to split a tab-delimited list into separate files by the filename-field. The list is already sorted ascendingly by filename, an example list would look like this; filename001 word1 word2 filename001 word3 word4 filename002 word1 word2 filename002 word3 word4... (4 Replies)
Discussion started by: perkele
4 Replies

8. UNIX for Dummies Questions & Answers

Converting Space delimited file to Tab delimited file

Hi all, I have a file with single white space delimited values, I want to convert them to a tab delimited file. I tried sed, tr ... but nothing is working. Thanks, Rajeevan D (16 Replies)
Discussion started by: jeevs81
16 Replies

9. UNIX for Dummies Questions & Answers

Read a tab delimited

OK, let's set this up. I have a tab delimited file from excel. In my UNIX shell I have the following lines IFS=`printf "\t"` while read LINE_NO SKIP IGNORE_ERRORS OTHER do .... This works fine if there is something in every column like this. NOTE, those are tabs, not spaces. :) ... (2 Replies)
Discussion started by: podzach
2 Replies

10. Shell Programming and Scripting

Converting Tab delimited file to Comma delimited file in Unix

Hi, Can anyone let me know on how to convert a Tab delimited file to Comma delimited file in Unix Thanks!! (22 Replies)
Discussion started by: charan81
22 Replies
Login or Register to Ask a Question