help editing .csv files
i would like help editing variable length .csv files. since i want to save over the original file, i dont think sed-awk will work for me. i have a c program that will read a single column file, edit it, and write to another file but i have no idea how to edit it in 'real-time'. the column i want to change will always be in 4th column.
any suggestions will be appreciated. thanks, example: my,name,is,simon,what,is,your,name -> my,name,is,schneidz,what,is,your,name |
the basic idea (if you want your code to be portable) is
1) slurp the file (= read into memory) 2) edit in-memory 3) save to disk I think it's possible to tell the kernel to tell the filesystem to modify in-place, but depending on the fs, it might or might not like changing the size. I wouldn't have a whelk's idea in a supernova as to how, though. hth --Jonas |
this is kinda' specific although i was surprised i didnt find anything similar in the forums.
i think i will stub together a shell script. something like the combination of sed, awk and my zero-pad program and save about five or six temp files. thx anyways |
Quote:
At least I would consider *now* an opportune moment to read the man pages. happy hacking, Jonas |
well, there's this:
perl -i.orig -p -e 'filtercmd' file1 file2 ... eg perl -i.orig -p -e 's/DATE/localtime/e' file1 makes a backup of orig file; to ignore backup, use perl -i -p -e 's/DATE/localtime/e' file1 or sed -i -e 's/DROP TABLE/DROP TABLE IF EXISTS/' myfile.sql |
i didnt try chriss' approach. here's mine it is messy but it works:
#!/bin/sh # schneidz for csv in *.csv do cut -d , -f -6 $csv > $csv.tmp1 cut -d , -f 7 $csv > $csv.tmp2 cut -d , -f 8- $csv > $csv.tmp3 zero-pad.x $csv.tmp2 > $csv.tmp2.mod paste -d , $csv.tmp1 $csv.tmp2.mod $csv.tmp3 > $csv rm -rf $csv.tmp1 $csv.tmp2 $csv.tmp3 $csv.tmp2.mod done 'zeropad.x' is mentioned in this post. http://www.linuxquestions.org/questi...hreadid=327071 thanks all, |
Re: help editing .csv files
Quote:
Code:
#!/usr/bin/perl -pi.bak -w |
Since the file is already comma delimited, I think what I would do is open it in gcalc or some spreadsheet and edit it there?
|
All times are GMT -5. The time now is 07:24 AM. |