How to work with two files with awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to work with two files with awk
# 8  
Old 04-24-2008
f1 f2 output
1 a a
2 b b
b
3 c c
c
c
4 d d
d
d
d

Sorry if i confused you.

And I typed everything in single line at the prompt for the output, it does work no syntax error.
# 9  
Old 04-24-2008
Try (with awk or nawk in case of problem)
Code:
awk '
NR==FNR {
   arr[FNR] = $1;
   next;
}
{
   print arr[FNR],$0 (arr[FNR]>0 ? OFS $0 : "")
   for (i=2; i<=arr[FNR]; i++)
      print $0;
}
' f1 f2

input file f1:
Code:
1
2
3
4
5
6
0

Input file 2:
Code:
a
b
c
d
e
f
z

Output:
Code:
1 a a
2 b b
b
3 c c
c
c
4 d d
d
d
d
5 e e
e
e
e
e
6 f  f
f
f
f
f
f
0 z

Jean-Pierre.
# 10  
Old 04-24-2008
awk ' NR==FNR { arr[FNR] = $1; next; } { print arr[FNR],$0 (arr[FNR]>0 ? OFS $0 : "") for (i=2;>
awk: syntax error near line 1
awk: illegal statement near line 1
awk: illegal statement near line 1
awk: syntax error near line 1
awk: illegal statement near line 1

tried nawk too:

nawk 'NR==FNR { arr[FNR] = $1; next;} { print arr[FNR],$0 (arr[FNR]>0 ? OFS $0 : "") for (i=2; >
nawk: syntax error at source line 1
context is
NR==FNR { arr[FNR] = $1; next;} { print arr[FNR],$0 (arr[FNR]>0 ? OFS $0 : "") >>> for <<< (i=2; i<=arr[FNR]; i++) print $0; }
nawk: illegal statement at source line 1

something is wrong, will try to figure out. Thanks!
# 11  
Old 04-24-2008
When you write the awk program on a single line, don't forget the ";" between statements.
Code:
[n]awk 'NR==FNR { arr[FNR] = $1; next;} { print arr[FNR],$0 (arr[FNR]>0 ? OFS $0 : ""); for (i=2; i<=arr[FNR]; i++) print $0;} ' f1 f2

Jean-Pierre.
# 12  
Old 04-24-2008
no luck...still syntax error
# 13  
Old 04-24-2008
Show us the error message.
Have you tried with awk and nawk ?

Jean-Pierre.
# 14  
Old 04-24-2008
yes it works now with nawk. I had a missing semicolon again.

Thanks.

awk ' NR==FNR { arr[FNR] = $1; next; } { print arr[FNR],$0 (arr[FNR]>0 ? OFS $0 : ""); for (i=2; i<=arr[FNR]; i++) print $0; } ' f1 f2
awk: syntax error near line 1
awk: illegal statement near line 1

was getting this with awk.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

This awk should work, shouldn't it?

Heyas Trying to parse a tempfile, but somehow i mess up. To my understand, this should work... Plain: tail -n1 out.tmp 1 81.5M 1 1066k 0 0 359k 0 0:03:52 0:00:02 0:03:50 359k I want to get the 81.5M, so i'd assume it'll be $2 for awk.... tail -n1 out.tmp | awk... (24 Replies)
Discussion started by: sea
24 Replies

2. Shell Programming and Scripting

Why my awk doesn't work?

root@SDP_Wildcat_Pass-3-C1:~# cat /proc/driver/rtc rtc_time : 05:29:40 rtc_date : 2014-12-19 alrm_time : 01:51:53 alrm_date : 2014-12-20 alarm_IRQ : no alrm_pending : no update IRQ enabled : no periodic IRQ enabled : no periodic IRQ... (4 Replies)
Discussion started by: yanglei_fage
4 Replies

3. UNIX for Dummies Questions & Answers

Why does this awk statement work?

So, I have an awk statement that does a little filtering and formats the output conveniently. Here's what I had originally: <input> | awk -F "\t" 'BEGIN{OFS=","} {sub(" ","_",$2)} (NR == 1) || (substr($2,9,2) >= 19 && substr($2,1,7) == "2011-02") {print}' That did what I wanted, except that... (2 Replies)
Discussion started by: treesloth
2 Replies

4. HP-UX

awk don't work in hp-ux 11.11

Hello all! I have problem in hp-ux 11.11 in awk I want to grep sar -d 2 1 only 3 column, but have error in awk in hp-ux 11.11 Example: #echo 123 234 | awk '{print $2}' 123 234 The situattions in commands bdf | awk {print $5}' some... In hp-ux 11.31 - OK! How resolve problem (15 Replies)
Discussion started by: ostapv
15 Replies

5. 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

6. Shell Programming and Scripting

awk: assign variable with -v didn't work in awk filter

I want to filter 2nd column = 2 using awk $ cat t 1 2 2 4 $ VAR=2 #variable worked in print $ cat t | awk -v ID=$VAR ' { print ID}' 2 2 # but variable didn't work in awk filter $ cat t | awk -v ID=$VAR '$2~/ID/ { print $0}' (2 Replies)
Discussion started by: honglus
2 Replies

7. Shell Programming and Scripting

awk -v -- Why doesn't my example work?

Hi. I've been playing around a bit. This isn't for any practical purpose-- it's really just a theoretical exercise. I wrote this little thing: foreach num ( 6 5 4 ) awk -v "number=$num" 'BEGIN{for(x=0;x<$number;x++) printf "-"; printf "\n"}' end I would expect the following output: ... (3 Replies)
Discussion started by: treesloth
3 Replies

8. Shell Programming and Scripting

NEED HELP (AWK or anything that would work)

Hi guys, heres my first post..... Input.txt: <abc a="" b="" c="" > <error x="" y="" z="" /> </abc> <abc a="" e="" c="" > ... (10 Replies)
Discussion started by: qzv2jm
10 Replies

9. Shell Programming and Scripting

why awk does not work here?

I am trying to find any line with the 9th column's number greater than 200, but why the following awk command does not work? awk '$9 > 200' /tmp/test 2007-09-05 10:13:05.714 640.847 any 1.2.3.4 719 2445 487260 32 6082 199 2007-09-05 10:13:02.686 641.827... (2 Replies)
Discussion started by: fedora
2 Replies

10. UNIX for Dummies Questions & Answers

awk may work!

:) have you tried awk... and pipe the actual start and end dates in the directory you're looking for when i go through my directories and look for certain matching files thats what i do except I am not quite sure what you are asking for so I can't give an exact example awk -f script file |... (0 Replies)
Discussion started by: moxxx68
0 Replies
Login or Register to Ask a Question