I want to select the first column from a daily file called foo.csv. The result is written to file foo.txt. Currently the following script is used for that:
cut -d, -f 1 foo.csv > foo.txt
A typical result would yield :
A12
A45
B11
B67
What needs to happen in addition is that two columns need to be added before writing to file, namely a code (say 'abc') and the current date, such that a typical result would yield :
abc 2008-05-20 A12
abc 2008-05-20 A45
abc 2008-05-20 B11
abc 2008-05-20 B67
How can this be achieved in particular if the date (column 2) should be today's date?
awk is perfectly able to do the job of cut at the same time, so yes, that can be optimized a bit. -F , sets awk's field separator to comma and OFS=FS causes it to use it as the Output Field Separator as well as [Input] Field Separator.
The first few lines of the input file foo.csv look as follows:
SG70,B3B0M92,ANN8132R7036,25-Jun-08
SG68,B3B2J97,ANN8132R6871,25-Jun-08
ST71,B2Q4T68,ANN8132N4540,25-Jun-08
SG67,B3B2J75,ANN8132R6798,24-Jun-08
so it is a list of codes of which the codes in the first column are needed only. Prepended with the code "abc" and the date, the resulting file foo.txt should hold the following data: