awk formatting


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers awk formatting
# 1  
Old 04-03-2012
awk formatting

Hi all,
I'm writing a simple awk code:
Code:
 awk 'BEGIN {FS="|"};{print "Type\tNumber\ttypes\tTotal";};{print $1, "\t", $2, "\t", $3, "\t", $4, "\t";}' db_query.txt

it gives me the result:
Type Number types Total
XXX 498.0 5100.0 5274.661
Type Number types Total
BB 1335.0 1312.0 4556.293

How can i make it in a better format? there is a space in between f fields which are not equal and also how can I omit the second repeated headlines? it is repeated for each line!

thanks!
M
# 2  
Old 04-03-2012
Please post sample input data and an example of the desired/expected output.
# 3  
Old 04-03-2012
Code:
$ nawk -F\| 'BEGIN {printf("Type\t\tNumber\t\ttypes\t\tTotal\n")}{printf("%s\t\t%s\t\t%s\t\t%s\n",$1,$2,$3,$4)}' input.txt                              
Type            Number          types           Total
XXX             498.0           5100.0          5274.661
BB              1335.0          1312.0          4556.293

# 4  
Old 04-03-2012
sample:
Code:
DDI|438.0|517.0|5274.661|
TD|1125.0|1312.0|4556.293|

desired:
Code:
Type         Number            types        Total
DDI       438.0         517.0      5274.661
TD         1125.0       1312.0    4556.293

thanks!
Messi

---------- Post updated at 05:21 AM ---------- Previous update was at 05:19 AM ----------

ah sorry! seems the formatting has problem!! I want them to be in straight in a coloum!!! no extra space!!
# 5  
Old 04-03-2012
Code:
$ nawk -F\| 'BEGIN {printf("Type\t\tNumber\t\ttypes\t\tTotal\n")}{printf("%s\t\t%s\t\t%s\t\t%s\n",$1,$2,$3,$4)}' input.txt
Type            Number          types           Total
DDI             438.0           517.0           5274.661
TD              1125.0          1312.0          4556.293

# 6  
Old 04-03-2012
ikamaraj!!! thanks!! thats what I want!! but what is the diff between your code and mine? what does printf do? and what does %s do?
# 7  
Old 04-03-2012
Code:
awk -F\| 'NR<2{print "Type","Number","types","Total"}{$1=$1}1' OFS="\t" yourfile

just feel free to double the tabulation :
Code:
awk -F\| 'NR<2{print "Type","Number","types","Total"}{$1=$1}1' OFS="\t\t" yourfile

Code:
# awk -F\| 'NR<2{print "Type","Number","types","Total"}{$1=$1}1' OFS="\t" tst
Type    Number  types   Total
DDI     438.0   517.0   5274.661
TD      1125.0  1312.0  4556.293
# awk -F\| 'NR<2{print "Type","Number","types","Total"}{$1=$1}1' OFS="\t\t" tst
Type            Number          types           Total
DDI             438.0           517.0           5274.661
TD              1125.0          1312.0          4556.293

You can even remove the useless last empty field with :
Code:
 awk -F\| 'NR<2{print "Type","Number","types","Total"}{NF--}1' OFS="\t\t" yourfile

Code:
# awk -F\| 'NR<2{print "Type","Number","types","Total"}{NF--}1' OFS="\t\t" tst
Type            Number          types           Total
DDI             438.0           517.0           5274.661
TD              1125.0          1312.0          4556.293


Last edited by ctsgnb; 04-03-2012 at 07:26 AM..
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Suffix formatting with awk

i would like to format the 9 character with suffix as "0". i tried below it doesn't work. >a=12345 > echo $a | awk '{printf "%-09s\n",$1}' >12345 required output is 123450000 can you guys help me out ? (7 Replies)
Discussion started by: expert
7 Replies

2. Shell Programming and Scripting

Formatting a report using awk

Our vendor produces a report that I would like to format in a particular way. Here is the sample output from their report: # AA.INDEX 2 11 2 239 52 (7,2) 07 MAY 11 203.1 55 # ACCOUNT 2 89561 2 ... (4 Replies)
Discussion started by: thaller
4 Replies

3. Shell Programming and Scripting

formatting awk

when i try this awk its giving out put as below. awk '!(/^$/||/--/||/selected/||/^ *$/){print $1}' tmp.txt output ===== 1 2010-08-03-12.31.26.126000 how excluede the 1st line ? i mean i want output only 2nd line i.e 2010-08-03-12.31.26.126000; (5 Replies)
Discussion started by: rocking77
5 Replies

4. Shell Programming and Scripting

AWK printing formatting help please

Hi all, Below is my testfile: COST,31-MAR-2011 01:01:04,31-MAR-2011 11:22:12,622 COST,21-MAR-2011 22:00:20,22-MAR-2011 11:07:23,788 FARE,23-MAR-2011 22:00:22,24-MAR-2011 10:10:46,731 FARE,02-MAR-2011 14:01:50,03-MAR-2011 08:30:54,1110 I need to append a number, for example 700, to the... (2 Replies)
Discussion started by: newbie_01
2 Replies

5. Shell Programming and Scripting

AWK formatting help.

Dear all I require help with AWK regarding this situation Input is : fn1 12345 fn1 23456 fn3 231513 fn1 22325 fn3 123125 Desired output is fn1 12345 23456 22325 fn3 231513 123125 (5 Replies)
Discussion started by: Peasant
5 Replies

6. Shell Programming and Scripting

html formatting using awk

Hi I have a file as given below: <table border=1> <TR><TH>Script Name</TH><TH>CVS Status</TH><TH>Script Location</TH></TR> <TR><TD><CENTER>Work Area: /home/ustst/</CENTER></TD></TR> <TR><TD><CENTER>admin_export.sh</CENTER></TD><TD><CENTER>Locally... (1 Reply)
Discussion started by: sudvishw
1 Replies

7. Shell Programming and Scripting

output formatting with awk.

# echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin How would i write a script to display permission on each folders in $PATH variable below format. drwxr-xr-x 2 0 root 4096 Nov 24 14:51 /usr/kerberos/sbin drwxr-xr-x 2 0... (2 Replies)
Discussion started by: pinga123
2 Replies

8. Shell Programming and Scripting

awk script formatting

Hello, I have got the following kine in my script awk '{printf("%s,", $0);next}{printf("%s", $0)}' ORS="," a.txt > b.out The contents of b looks somewaht like this: QUEUE(QUEUE1.Q),CURDEPTH(0),QUEUE(QUEUE2.Q),CURDEPTH(0),QUEUE(QUEUE3.Q),CURDEPTH(0) But my desired output is :... (10 Replies)
Discussion started by: King Nothing
10 Replies

9. UNIX for Advanced & Expert Users

Formatting file with Awk?

I have a file in CSV format (2 columns ID and Number of Items): AB1 ,,10 AB2 ,,20 AB2 ,, 30 AB3 ,, 10 AB4 ,, 20 AB4 ,, 30 AB4 ,, 40 AB5 ,, 50 AB6 ,, 10 AB7 ,, 20 AB7 ,, 30 AB7 ,, 40 ...... This file is produced daily i would like to get it in the following format, so... (6 Replies)
Discussion started by: SAMZ
6 Replies

10. Shell Programming and Scripting

Formatting using awk

Let's say I write a simple script that contains the following: date | awk '{print $1}' date | awk '{print $2}' Of course, when I run the script the output will look similar to: Tue Mar What if I want my ouput to be on one line as follows: Tue Mar What changes would I need to... (2 Replies)
Discussion started by: cdunavent
2 Replies
Login or Register to Ask a Question