doubt in awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting doubt in awk
# 1  
Old 04-15-2008
CPU & Memory doubt in awk

Hi ,
I have a file in the below format:

1.txt

awk 'BEGIN { printf ("%1s", "man" )} '
awk 'BEGIN { printf ("%9s", "women" )} '
awk 'BEGIN { printf ("%56s", "human")} '
##
###
##
echo "$!"
##
awk 'BEGIN { printf ("%1s", "aaa" )} '
awk 'BEGIN { printf ("%19s", "bbb" )} '
awk 'BEGIN { printf ("%24s", "ccc" )} '
### #
##
awk 'BEGIN { printf ("%1s", "rrr"} '
awk 'BEGIN { printf ("%31s", "ddd"}'
awk 'BEGIN { printf ("%43s","eeee"}'

I want to convert it to the below file:

2.txt

awk 'BEGIN {
printf ("%1s", "man" );
printf ("%9s", "women" );
printf ("%56s", "human")}'
##
###
##
echo "$!"
##
awk 'BEGIN {
printf ("%1s", "aaa");
printf ("%19s", "bbb");
printf ("%24s","ccc" )}'
### #
##
awk 'BEGIN {
printf ("%1s", "rrr");
printf ("%19s", "ddd");
printf ("%24s","eeee")}'

Can this be done?
Thanks in advance
JS
# 2  
Old 04-15-2008
Code:
awk -v sq="'" -F "[}{]" '
  /^awk/ && n == 0 { print "awk", sq, "BEGIN {" }
  /^awk/ { print $2; n = 1 }
  n == 1 && ! /^awk/ { n = 0; print "}" sq }
  ! /^#/ { print }
  END {  print "}" sq }
' "$FILE"


#

# 3  
Old 04-16-2008
Hi Johnson ,

I got the out as below :

awk ' BEGIN {
printf ("%1s", "man" )
awk 'BEGIN { printf ("%1s", "man" )} '
printf ("%9s", "women" )
awk 'BEGIN { printf ("%9s", "women" )} '
printf ("%56s", "human")
awk 'BEGIN { printf ("%56s", "human")} '
}'
echo "$!"
awk ' BEGIN {
printf ("%1s", "aaa" )
awk 'BEGIN { printf ("%1s", "aaa" )} '
printf ("%19s", "bbb" )
awk 'BEGIN { printf ("%19s", "bbb" )} '
printf ("%24s", "ccc" )
awk 'BEGIN { printf ("%24s", "ccc" )} '
}'
echo "$!"
awk ' BEGIN {
printf ("%1s", "rrr")
awk 'BEGIN { printf ("%1s", "rrr")} '
printf ("%31s", "ddd")
awk 'BEGIN { printf ("%31s", "ddd")}'
printf ("%43s","eeee")
awk 'BEGIN { printf ("%43s","eeee")}'
}'
}'

Am trying to tune the code a bit so tat I can reach to the required o/p
Thanks a lot for ur time
JS
# 4  
Old 04-16-2008
Am still not getting it solved ..
# 5  
Old 04-16-2008
This puts the closing quote on a separate line, maybe that's acceptable?

Code:
awk -v sq="'" '
{ if (/^awk .BEGIN { /){
    if (prev) gsub("awk " sq "BEGIN", "");
    gsub ("} *" sq, "}");
    prev = 1;
  } else {
    if (prev) printf ("%c\n", sq);
    prev = 0;
  }
  print }
END { if (prev) printf "%c\n", sq }' 1.txt

You are missing a closing parenthesis in some of the printfs in the input file, but I guess we weren't supposed to solve that too.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Doubt in awk

Hi, I got a below requirement from this forum, but the solution provided was not clear. Below is the requirement Input file A 1 Z A 1 ZZ B 2 Y B 2 AA Required output B Y|AA A Z|ZZ (5 Replies)
Discussion started by: stew
5 Replies

2. Shell Programming and Scripting

Doubt on using AWK

DE_CODE|1{AXXANY}1APP_NAME|2{TELCO}2LOC|NY DE_CODE|1{AXXATX}1APP_NAME|2{TELCO}2LOC|TX DE_CODE|1{AXXABT}1APP_NAME|2{TELCO}2LOC|BT DE_CODE|1{AXXANJ}1APP_NAME|2{TELCO}2LOC|NJ i have out put file like below i have to convert it in the format as below. DE_CODE = AXXANY APP_NAME= TELCO LOC = NY... (4 Replies)
Discussion started by: mail2sant
4 Replies

3. UNIX for Dummies Questions & Answers

a doubt in awk

instead of writing print command in awk, i saw in some posts that we can simply write a number before we end the awk command and it will print the file. As given below: $awk '{some manipulation; print}' filename $awk '{some manipulation}1' filename I also tried replacing the... (2 Replies)
Discussion started by: PranavEcstasy
2 Replies

4. Shell Programming and Scripting

Awk doubt

I have a file sample.txt with the following contents: the following gives output as awk 'NF{s=$0; print s}' sample.txt but, awk 'NF{s=$0}{print s}' sample.txtgives output as why this difference, can someone explain me? (6 Replies)
Discussion started by: royalibrahim
6 Replies

5. Shell Programming and Scripting

doubt on awk

I have executed the below command: find . -name "Ks*" -type f -exec ls -ltr {} \; | awk '{printf("%ld %s %d %s \n",$5,$6,$7,$8,$9)}' and here is the output: 1282 Oct 7 2004 51590 Jul 10 2006 921 Oct 7 2004 1389 Jun 4 2003 1037 May 19 2004 334 Mar 24 2004 672 Jul 8 2003 977... (6 Replies)
Discussion started by: venkatesht
6 Replies

6. Shell Programming and Scripting

AWK doubt

Hello people I have a doubt about awk... I´m using it to create a condition where I do not want to use the 0 (zero) value of a certain column. - This is the original file: string,number,date abc,0,20050101 def,1,20060101 ghi,2,20040101 jkl,12,20090101 mno,123,20020101... (2 Replies)
Discussion started by: Rafael.Buria
2 Replies

7. UNIX for Dummies Questions & Answers

doubt about awk

i have a file like this: awk.lst smith : sales : 1200 : 2 jones:it:25000 : 2 roger : it : 1500 : 2 ravi | acct | 15000 i have 3 doubts 1) when i say awk -F ":" '$2 ~ /'it'/ {print $0}' awk.lst i am not able to get jones in the ouput , is it because of space issue? 2)how to... (2 Replies)
Discussion started by: soujanya_srk
2 Replies

8. Shell Programming and Scripting

awk doubt

hi how to get the values in two columns (may be 2nd and 5th column) of a file line by line. either i want to get the two fields into different variables and use a for loop to get these values line by line. (3 Replies)
Discussion started by: Pradee
3 Replies

9. Shell Programming and Scripting

doubt in AWK

Hi all, column1 -------- 33 44 55 66 please provide the script using awk command to dispaly output 55. Help apperciated.. thanks, Nirmal (4 Replies)
Discussion started by: abnirmal
4 Replies

10. UNIX for Dummies Questions & Answers

awk doubt

I'm having a file with 5 fields. I want to sort that file according to one field no 3. How shall I do using awk programming. Any input appreciatable. regards, vadivel. (7 Replies)
Discussion started by: vadivel
7 Replies
Login or Register to Ask a Question