Text File Manipulation


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Text File Manipulation
# 1  
Old 03-10-2015
Text File Manipulation

Hello,

Supposing I had a huge list as follows:


Code:
TAC	manufacturer	Device	Type
1392600	LG	D959 LG-D959TS	FeaturePhone
1409700	LG	V410	FeaturePhone
35150806	LG	F350S	FeaturePhone
35165206	Samsung	GT-E1200	FeaturePhone
35194505	Nokia	Asha 200	FeaturePhone

but I want to make it look like this

Code:
35237306,"Nokia","RM-980","FeaturePhone"
35272004,"Nokia","2730","FeaturePhone"
35530806,"Samsung","SM-G313HZ","FeaturePhone"
35530906,"Samsung","SM-G313HZ","FeaturePhone"
35536506,"Samsung","GT-E1200R","FeaturePhone"
35544906,"Samsung","SM-G313M/DS","FeaturePhone"
35545006,"Samsung","SM-G313M/DS","FeaturePhone"

Essentially I need to convert it to comma delimited with all but the initial field wrapped in quotes.

I used the following line:

Code:
cat imeisvstep1.tmp | while read TAC MAN DEV TYP; do echo $TAC,\"$MAN\",\"$DEV\",\"$TYP\" >> imeisvfinal.csv; done

Unfortunately it produces incorrect comma and quote placements when there are spaces in the model name like so:

Code:
35920005,"Nokia","Lumia","1520 Smartphone"
35922606,"Apple","iPhone","6 Smartphone"
35953405,"Samsung","Galaxy","Mega 5.8 Duos i9152 Smartphone"

How can I make it ignore spaces but not tabs? Or is there something else I can use?


Thanks
Cludgie

Last edited by Scrutinizer; 03-10-2015 at 04:15 PM.. Reason: code tags
# 2  
Old 03-10-2015
Like so?
Code:
awk '{for(i=2; i<=NF; i++) $i="\"" $i "\""}NR>1' FS='\t' OFS=, file

This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 03-10-2015
Assuming input is tab delimited (which I believe it is) and if you have a fear of awk :-)

Code:
sed -e 1d -e 's/[  ][      ]*/,/g' -e 's/,/","/g' -e 's/"//' -e 's/$/"/' <imeisvstep1.tmp

The whitespace above in the brackets is a tab character.
This User Gave Thanks to cjcox For This Post:
# 4  
Old 03-12-2015
Brilliant thanks guys, you both nailed it.

Apologies for the lack of code tags around the data examples, I'll bear it in mind for next time.


Thanks again
Cludgie
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Text file manipulation

Hi Gurus, I have a question I have a flat file like below with three fields (3 rd field is amt) ad|B|500 cc||100 dd|C|600 ee||900 Need to write a code in such a way that when second field is empty then do sum of third field So in this case it will be 100 +900 I tried but no luck... (1 Reply)
Discussion started by: patricjemmy6
1 Replies

2. UNIX for Dummies Questions & Answers

Mathematical manipulation of a text file

I have a tab delimited file with 4 columns. If the value in the first column, equals the value in the second column, I'd like to have the 4th column multiplied by 2 then add 1. If the value in the first column differs from the value in the second, I'd like to have the 4th column multiplied by 2... (5 Replies)
Discussion started by: evelibertine
5 Replies

3. Programming

String Manipulation in a text file

Hi I have a requirement to write a script but not sure which is the best way to approach this I have not worked in sed but I'm aware that its robust for file extraction requirements I have a scripting task. I already developed the code in perl but the script is taking almost 2 mins for... (5 Replies)
Discussion started by: John Trevor
5 Replies

4. Shell Programming and Scripting

Awk to convert a text file to CSV file with some string manipulation

Hi , I have a simple text file with contents as below: 12345678900 971,76 4234560890 22345678900 5971,72 5234560990 32345678900 71,12 6234560190 the new csv-file should be like: Column1;Column2;Column3;Column4;Column5 123456;78900;971,76;423456;0890... (9 Replies)
Discussion started by: FreddyDaKing
9 Replies

5. UNIX for Dummies Questions & Answers

Text File Manipulation Help

Hi I've two text files FILE_1 and FILE_2 as shown below: FILE_1.txt CO Contig1 342 12 11 U GGGCTGACGTGGCCGCTAATACGACTCACTATAGGG*AGAGAAGTCATTTTCTTGTTTAG BQ 35 35 35 50 50 50 50 50 50 50 50 60 65 65 65 65 65 65 65 65 65 65 65 65 50 AF GP5UOVN01AOPE0 U 1 AF GP5UOVN01AT8W3 U 1 ... (1 Reply)
Discussion started by: Fahmida
1 Replies

6. Shell Programming and Scripting

Text File Manipulation

Hi, I need to write shell script for the scenario explained below - datafile.txt AcctNum,code,Region,,,, 12345451,AN ,abaab 12345452,AN ,xccxc 76677545,RP ,acxcc 43567878,RP ,afghh 32190900,AN ,afrfrf 87312345,AN ,aqaw I have a text file (datafile.txt)... (1 Reply)
Discussion started by: ravigupta2u
1 Replies

7. Shell Programming and Scripting

File text manipulation

What I am trying to do is make a script that will add a port number within a section of a file if it already doesn't exist in that section of the file. The particular line that I would like to add the port number to in the file is formatted like this: TCPPORTS="25 80 125 443 8080 10000" For... (3 Replies)
Discussion started by: nullifx
3 Replies

8. Shell Programming and Scripting

Shell script text file manipulation.

Hello, I have mysql binary file which logs all the database queries and i to insert all queries log in to database. First i coverted binary file to text file. and start playing with it. Text file contains following queries, some samples are, SET INSERT_ID=1; INSERT INTO test... (0 Replies)
Discussion started by: mirfan
0 Replies

9. UNIX for Dummies Questions & Answers

Text file manipulation

I am a new unix user & I wanted to work with unix as it is very good in text manipulations. I need a little help. I will be grateful if someone can help me out. I need help in grepping a pattern of numbers from one file to another file. Specific details are as follows: File one contains only... (4 Replies)
Discussion started by: Ezy
4 Replies

10. UNIX for Dummies Questions & Answers

Text file manipulation

Hi, I need to remove lines from a text file that are less than certain length in UNIX. For example, test.txt file contains the following lines: abcdefghijklmnopqrstuvwxyz. 123456789009876543211234567 This line to be removed. zyxwvutsrqponmlkjihgfedcba. The length of each line is supposed... (5 Replies)
Discussion started by: svannala
5 Replies
Login or Register to Ask a Question