Sponsored Content
Full Discussion: awk and sed problem
Top Forums Shell Programming and Scripting awk and sed problem Post 302452923 by durden_tyler on Monday 13th of September 2010 11:52:08 AM
Old 09-13-2010
Quote:
Originally Posted by scripter12
...
I am able to generate a csv file which has 3 columns. But the header is not coming out exactly i.e it doesnot have a comma in between it but the data is getting produced with the comma.
The first line i.e the header is coming out as:-
Counter Number Counterparty1 Counterparty2

where Counter Number is the first column, Counterparty1 is the 2nd and Counterparty2 is the 3rd column

The process that i followed is:-
HEADER1="Counter Number"
HEADER2="Counterparty1"
HEADER3="Counterparty2
HEADER="$HEADER1,$HEADER2,$HEADER3"

Then I am deleting the first line from the csv file and then
echo $HEADER > output1.csv
cat input.csv >> output1.csv
mv output1.csv output.csv

It works , but I know that this is not the correct way. I think it can be done with awk and sed. So can somebody help me to put commas inbetween the headers in the first line of the csv...
...
There's a missing double-quote at the end of HEADER3 value. It should throw an error in Bash -

Code:
$
$
$ cat input.csv
a,b,c,d
e,f,g,h
i,j,k,l
$
$ cat cp_with_header.sh
HEADER1="Counter Number"
HEADER2="Counterparty1"
HEADER3="Counterparty2
HEADER="$HEADER1,$HEADER2,$HEADER3"
echo $HEADER > output1.csv
cat input.csv >> output1.csv
mv output1.csv output.csv
$
$
$ . cp_with_header.sh
bash: cp_with_header.sh: line 4: unexpected EOF while looking for matching `"'
bash: cp_with_header.sh: line 10: syntax error: unexpected end of file
$
$

I am able to see the expected output after fixing it:

Code:
$
$
$ cat cp_with_header.sh
HEADER1="Counter Number"
HEADER2="Counterparty1"
HEADER3="Counterparty2"
HEADER="$HEADER1,$HEADER2,$HEADER3"
echo $HEADER > output1.csv
cat input.csv >> output1.csv
mv output1.csv output.csv
$
$ . cp_with_header.sh
$
$
$ cat output.csv
Counter Number,Counterparty1,Counterparty2
a,b,c,d
e,f,g,h
i,j,k,l
$
$

A shorter way in the shell could've been thus -

Code:
$
$
$ echo $HEADER
Counter Number,Counterparty1,Counterparty2
$
$
$ echo $HEADER | cat - input.csv
Counter Number,Counterparty1,Counterparty2
a,b,c,d
e,f,g,h
i,j,k,l
$
$
$ # just redirect the pipeline of commands to output.csv
$
$

Or if you want awk -

Code:
$
$
$ cat input.csv
a,b,c,d
e,f,g,h
i,j,k,l
$
$
$ awk -v HDR="$HEADER" 'BEGIN {print HDR} {print}' input.csv
Counter Number,Counterparty1,Counterparty2
a,b,c,d
e,f,g,h
i,j,k,l
$
$
$ # just redirect the output of the awk one-liner to output.csv
$
$

tyler_durden
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

sed/awk String problem

I would appreciate it if any one can guide me in using awk perhaps sed in extracting some values from a long string. here is an example. .......some lines here........ ........ aaaa bbbb cccc ddddd eeeee fffff gggg (time:hhhh)........ ......some lines here also.......... How can I extract... (2 Replies)
Discussion started by: odogbolu98
2 Replies

2. Shell Programming and Scripting

awk & sed problem

Hello, I am new to shell scripting. I want to optimize my one of the script. I have one file and i want to remove selected zones for domains from that file.In this file i have almost 3500 zones for domains.Sample data for the file.... named.backup... (0 Replies)
Discussion started by: nrbhole
0 Replies

3. Shell Programming and Scripting

awk,sed or cut problem

Good afternoon, Sir's, I would like to seek your assistance regarding on this matter. $cat file1 111 aaaa bbb aass aaa files file1 temp temp1 pix 222 11 22 1 33 44 desired output: aaaa bbb aass files file1 temp1 222 11 22 1 33 44 thanks (7 Replies)
Discussion started by: invinzin21
7 Replies

4. Shell Programming and Scripting

awk...sed problem

Hi guys, I am tryingto delete or ignore columns in a large dataset using 'sed'. For example, I have the following dataset: - 20060714,X.XX,1,043004,Q,T,24.0000,1,25.5000,4, 20060714,X.XX,1,081209,Q,T,24.0000,1,25.5000,5, As you can see, there are 10 columns here and the table that I am... (1 Reply)
Discussion started by: aarif
1 Replies

5. Shell Programming and Scripting

Problem facing with sed and awk

Hi All, I have a got a problem .. I have t files as below: 1.txt contains ----- ----- ----- column 1, "cat", column 24, "dog", column 100, "rat", ----- ----- ----- 2.sh should contain ----- ----- ----- awk 'BEGIN { printf ("%1s","cat")}' (19 Replies)
Discussion started by: jisha
19 Replies

6. Shell Programming and Scripting

Another parsing line awk or sed problem

Hi, After looking on different forums, I'm still in trouble to parse a parameters line received in KSH. $* is equal to "/AAA:111 /BBB:222 /CCC:333 /DDD:444" I would like to parse it and be able to access anyone from his name in my KSH after. like echo myArray => display 111 ... (1 Reply)
Discussion started by: RickTrader
1 Replies

7. Shell Programming and Scripting

awk/sed problem

I have a bunch of files I need to change a letter to another letter only in the first column of a space delimited file. The problem is that after the first column, there's comments and such that cause problems with awk. Here's what my data looks like: 16a28.0a27.0a26.0a25.0a24.67.255.200... (3 Replies)
Discussion started by: supradave
3 Replies

8. Shell Programming and Scripting

Some problem with awk or sed in if conditions

#set -x path=`pwd` while read line do dd=`echo $line|awk -F"," '{print $1}'|awk -F"/" '{print $2}'` if then mm=`echo $line|awk -F"," '{print $1}'|awk -F"/" '{print $1}'` yy=`echo $line|awk -F"," '{print $1}'|awk -F"/" '{print $3}'` var=`echo $line|awk -F"," '{print $2}'` var1=`echo... (2 Replies)
Discussion started by: nikhil jain
2 Replies

9. Shell Programming and Scripting

Problem with output awk and sed

I have file, i am extracting email address from file. but problem is that output is very ugly. I am using this command REMOVED "CSS OFFENDING CODE"... While original filename have no such character. Please suggest. (20 Replies)
Discussion started by: learnbash
20 Replies

10. Shell Programming and Scripting

sed or awk script problem

Hi All I am having a file as shown below File1# modyle 1 { test jsj hhsjh 13e3 jsjjs } memP(dbg_trace) { ajjs jsjs jsjs Test(claer) { jsjs (7 Replies)
Discussion started by: kshitij
7 Replies
All times are GMT -4. The time now is 03:07 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy