bruce.staples
May 13th, 2011, 12:57 AM
This may be an *obvious* problem, but I just can't see it!
I have an awk script to extract fields, and output a csv file, but now I'm not able to use it!
I have an input of the following format:
START:1
FIELD_1:content11
FIELD_2:content12
FIELD_3:content13
END
START:2
FIELD_1:content21
#FIELD_2:content22
FIELD_3:content23
END
START:3
FIELD_1:content31
FIELD_2:content32
FIELD_3:content33
END
The awk script is:
!/bin/awk
BEGIN {
FS =":"
print "Fieldname1,Fieldname2,fieldname3"
}
/^FIELD_1/ {
field1 = $2
}
/^FIELD_2/ {
field2 = $2
}
/^FIELD_3/ {
field3 = $2
}
/^END/ {
print field1 "," field2 "," field3
# messy clean up for each record
field1 = ""
field2 = ""
field3 = ""
}
#[eof]
So invoking it with
$ awk -f e.awk input.txt > output.txt
I expected
Fieldname1,Fieldname2,fieldname3
content11,content12,content13
content21,,content23
content31,content32,content33
but I got:
Fieldname1,Fieldname2,fieldname3
START:1
FIELD_1:content11
FIELD_2:content12
FIELD_3:content13
END
content11,content12,content13
START:2
FIELD_1:content21
#FIELD_2:content22
FIELD_3:content23
END
content21,,content23
START:3
FIELD_1:content31
FIELD_2:content32
FIELD_3:content33
END
content31,content32,content33
... which is apparently echoing the input to the output ...
This happens with
awk -f e.awk input.txt
as well.
Any suggestions (please)?
I have an awk script to extract fields, and output a csv file, but now I'm not able to use it!
I have an input of the following format:
START:1
FIELD_1:content11
FIELD_2:content12
FIELD_3:content13
END
START:2
FIELD_1:content21
#FIELD_2:content22
FIELD_3:content23
END
START:3
FIELD_1:content31
FIELD_2:content32
FIELD_3:content33
END
The awk script is:
!/bin/awk
BEGIN {
FS =":"
print "Fieldname1,Fieldname2,fieldname3"
}
/^FIELD_1/ {
field1 = $2
}
/^FIELD_2/ {
field2 = $2
}
/^FIELD_3/ {
field3 = $2
}
/^END/ {
print field1 "," field2 "," field3
# messy clean up for each record
field1 = ""
field2 = ""
field3 = ""
}
#[eof]
So invoking it with
$ awk -f e.awk input.txt > output.txt
I expected
Fieldname1,Fieldname2,fieldname3
content11,content12,content13
content21,,content23
content31,content32,content33
but I got:
Fieldname1,Fieldname2,fieldname3
START:1
FIELD_1:content11
FIELD_2:content12
FIELD_3:content13
END
content11,content12,content13
START:2
FIELD_1:content21
#FIELD_2:content22
FIELD_3:content23
END
content21,,content23
START:3
FIELD_1:content31
FIELD_2:content32
FIELD_3:content33
END
content31,content32,content33
... which is apparently echoing the input to the output ...
This happens with
awk -f e.awk input.txt
as well.
Any suggestions (please)?