awk output


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk output
# 1  
Old 06-30-2014
awk output

hello all

input file
Code:
AAA:  XXX1
CCC: DD SS
SSS: SSS1
BBBB:  ASAS
ZZZ:  ZZZZZ1
XXX:  XXXXXXXXXXXXXXX1
PPPP:  PPPPPP1
RRRR:  111111111
ZZZ:  ZZZZZ2
XXX:  XXXXXXXXXXXXXXX2
PPPP:  PPPPPP2
RRRR:  222222222
ZZZ:  ZZZZZ3
XXX:  XXXXXXXXXXXXXXX3
PPPP:  PPPPPP3
RRRR:  33:33:33:33:33

AAA:  XXX2
CCC: DD WW
SSS: SSS2
BBBB:  ASASQ
ZZZ:  ZZZZZ11
XXX:  XXXXXXXXXXXXXXX11
PPPP:  PPPPPP11
RRRR:  1111111112
ZZZ:  ZZZZZ22
XXX:  XXXXXXXXXXXXXXX22
PPPP:  PPPPPP22
RRRR:  2222222223
ZZZ:  ZZZZZ33
XXX:  XXXXXXXXXXXXXXX33
PPPP:  PPPPPP33
RRRR:  33:33:33:33:33:44

Expected result
Code:
XXX1|SSS1|ZZZZZ1|PPPPPP1|111111111|
XXX1|SSS1|ZZZZZ2|PPPPPP2|222222222|
XXX1|SSS1|ZZZZZ3|PPPPPP3|3333333333|
XXX2|SSS2|ZZZZZ11|PPPPPP11|1111111112|
XXX2|SSS2|ZZZZZ22|PPPPPP22|2222222223|
XXX2|SSS2|ZZZZZ33|PPPPPP33|333333333344|

What I have already but not working as expected
Code:
cat 11 | awk '/AAA/ {printf $2 "|"}; 
/SSS/ {print $2"|"} ; 
/ZZZ/ {printf $2"|"} ; 
/PPPP/ {printf $2"|"}; 
/RRRR/ {gsub(":","",$2); print $2"|"}'

can someone help please?
# 2  
Old 06-30-2014
Code:
awk '/^A/ {a=$2} /^S/ {b=$2} /^Z/ {c=$2} /^P/ {d=$2} /^R/ {gsub(/:/, "", $2); print a,b,c,d,$2 OFS}' OFS=\| infile

This User Gave Thanks to zaxxon For This Post:
# 3  
Old 06-30-2014
Use printf consistently. Try
Code:
awk     '/AAA/                  {TMP=$2};
         /SSS/                  {TMP=TMP "|" $2}
         /ZZZ/                  {printf "%s|%s|", TMP, $2}
         /PPPP/                 {printf "%s|", $2}
         /RRRR/                 {gsub(":","",$2); printf "%s|\n", $2}
        '

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk output yields error: awk:can't open job_name (Autosys)

Good evening, Im newbie at unix specially with awk From an scheduler program called Autosys i want to extract some data reading an inputfile that comprises jobs names, then formating the output to columns for example 1. This is the inputfile: $ more MapaRep.txt ds_extra_nikira_usuarios... (18 Replies)
Discussion started by: alexcol
18 Replies

2. Shell Programming and Scripting

Get output using awk

Need assistance in getting output using awk. Below example /local/tools/ldm/data/gempak/nwx/pubprod/zone/2014010910.zone:TXZ213-092215- Need output as below 2014010910.zone (4 Replies)
Discussion started by: ajayram_arya
4 Replies

3. Shell Programming and Scripting

awk question : system output to awk variable.

Hi Experts, I am trying to get system output to capture inside awk , but not working: Please advise if this is possible : I am trying something like this but not working, the output is coming wrong: echo "" | awk '{d=system ("date") ; print "Current date is:" , d }' Thanks, (5 Replies)
Discussion started by: rveri
5 Replies

4. Shell Programming and Scripting

Awk script to run a sql and print the output to an output file

Hi All, I have around 900 Select Sql's which I would like to run in an awk script and print the output of those sql's in an txt file. Can you anyone pls let me know how do I do it and execute the awk script? Thanks. (4 Replies)
Discussion started by: adept
4 Replies

5. Shell Programming and Scripting

help on awk---- need to assign the output of awk to a variable

hi i want to find the size of a folder and assign it to a variable and then compare if it is greater than 1 gb. i am doin this script, but it is throwing error.... #!/bin/ksh cd . | du -s | size = awk '{print $1}' if size >= 112000 then echo size high fi ERROR : (4 Replies)
Discussion started by: Nithz
4 Replies

6. Shell Programming and Scripting

awk: round output or delimit output of arithmatic string

I have a file with the following content. > cat /tmp/internetusage.txt 6709.296322 30000 2/7/2010 0.00I am using the following awk command to calculate a percentage from field 1 and 2 from the file. awk '{ print $1/$2*100 }' /tmp/internetusage.txt This outputs the value "22.3643" as a... (1 Reply)
Discussion started by: jelloir
1 Replies

7. Shell Programming and Scripting

Parse file using awk and work in awk output

hi guys, i want to parse a file using public function, the file contain raw data in the below format i want to get the output like this to load it to Oracle DB MARWA1,BSS:26,1,3,0,0,0,0,0.00,22,22,22.00 MARWA2,BSS:26,1,3,0,0,0,0,0.00,22,22,22.00 this the file raw format: Number of... (6 Replies)
Discussion started by: dagigg
6 Replies

8. Shell Programming and Scripting

scripting/awk help : awk sum output is not comming in regular format. Pls advise.

Hi Experts, I am adding a column of numbers with awk , however not getting correct output: # awk '{sum+=$1} END {print sum}' datafile 2.15291e+06 How can I getthe output like : 2152910 Thank you.. # awk '{sum+=$1} END {print sum}' datafile 2.15079e+06 (3 Replies)
Discussion started by: rveri
3 Replies

9. Shell Programming and Scripting

Same awk gives different output:

nawk -F"|" '{for (i=1;i<=NF;i++) {gsub("^*", "",$i);gsub("*$", "",$i)}}1' OFS="|" file | wc -l 1000 nawk -F"|" '{for (i=1;i<=NF;i++) {gsub("^*", "",$i);gsub("*$", "",$i);print $0}}' OFS="|" file | wc -l 22000 The above awk command are same but with different printing... (1 Reply)
Discussion started by: pinnacle
1 Replies

10. Shell Programming and Scripting

awk output

could any one tell me why the following code is working in infinite loop every time it is asking for no. even though it does not have for loop #!/bin/awk -f BEGIN { print "type a number"; } { print "The square of ", $1, " is ", $1*$1; print "type another number"; } END { ... (3 Replies)
Discussion started by: useless79
3 Replies
Login or Register to Ask a Question