Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

awk - how to delete first column with field separator

Tags:

linux

shell

awk

I have a csv file with data presented as follows

87540221|1356438283301|1356438284971|1356438292151697
87540258|1356438283301|1356438284971|1356438292151697
87549647|1356438283301|1356438284971|1356438292151697

I'm trying to save the first column to a new file (without field separator , and then delete the first column from the main csv file along with the first field separator.

Any ideas?

This is what I have tried so far

awk 'BEGIN{FS=OFS="|"}{$1="";sub("|,"")}1'

but it doesn't work

like image 399
Deano Avatar asked May 08 '13 18:05

Deano


1 Answers

This is simple with cut:

$ cut -d'|' -f1 infile
87540221
87540258
87549647

$ cut -d'|' -f2- infile
1356438283301|1356438284971|1356438292151697
1356438283301|1356438284971|1356438292151697
1356438283301|1356438284971|1356438292151697

Just redirect into the file you want:

$ cut -d'|' -f1 infile > outfile1

$ cut -d'|' -f2- infile > outfile2 && mv outfile2 file 
like image 150
Chris Seymour Avatar answered Oct 22 '22 02:10

Chris Seymour