Foreach issue


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Foreach issue
# 8  
Old 09-20-2011
Works for me :-/

Code:
[root@D152153 tmp]# awk 'NR==FNR\
{
  a[++i]=$0;next
}
{
  b[++j]=$0;
}
END\
{
  for(k=1;k<=j;k++)
    {
       print "COMMAND " a[k] " COMMAND_OPTION " b[k]
    }
}' f1 f2

COMMAND A COMMAND_OPTION 1
COMMAND B COMMAND_OPTION 2
COMMAND C COMMAND_OPTION 3

Try running it in command line and see. Which OS?

--ahamed
This User Gave Thanks to ahamed101 For This Post:
# 9  
Old 09-20-2011
Damn... I spent hours for this and it's based on OS? :-/

SUN OS 5.8

command line also does not help.

TCSH and BASH:
Code:
awk 'NR==FNR{a[++i]=$0;next}{ b[++j]=$0;}END{ for(k=1;k<=j;k++){print"COMMAND " a[k] "COMMAND_OPTION " b[k] }}' file1 file2
COMMAND COMMAND_OPTION line1_form_file1
COMMAND COMMAND_OPTION line2_form_file1
COMMAND COMMAND_OPTION line3_form_file1
COMMAND COMMAND_OPTION line1_from_file2
COMMAND COMMAND_OPTION line2_from_file2
COMMAND COMMAND_OPTION line3_from_file2

---------- Post updated at 03:55 PM ---------- Previous update was at 03:41 PM ----------

Does any1 have an idea? (I'm lost)
Thanks

---------- Post updated at 04:08 PM ---------- Previous update was at 03:55 PM ----------

Testet now under: Linux 2.6.9
=> and it WORKS!

Omg... does anyone know why this does NOT work as expected (exactly same files and same bash used, but other output) for Sun OS?
What a waste of time :-(
Thanks for this important hint... else i would have searched myself dead for print solutions...
# 10  
Old 09-20-2011
Code:
Use nawk or /usr/xpg4/bin/awk on Solaris.

This User Gave Thanks to panyam For This Post:
# 11  
Old 09-20-2011
Can you please explain me if/why AWK on SunOS is different to the AWK on linux.
Is it just outdated on SunOS? Would be nice to understand what the issue is.
Strange is, that AWK also worked but gave another output.

THANKS, nawk works on SunOS and provides exactly the output which Linux shows.

---------- Post updated at 04:20 PM ---------- Previous update was at 04:18 PM ----------

How can i fiure out the AWK version for SunOS? I get no response on SunOS.

Quote:
Linux:
sh-3.00$ awk --version
GNU Awk 3.1.3
# 12  
Old 09-20-2011
If in Solaris, blindly use "nawk".

--ahamed
# 13  
Old 09-20-2011
How can i run "normal" commands in an awk script?

Code:
#!/bin/sh
nawk 'NR==FNR\
{
  a[++i]=$0;next
}
{
  b[++j]=$0;
}
END\
{
  for(k=1;k<=j;k++)
    {
       print "\n======== " a[k] " ========"   
       ls -la
    }
}' file1 file2

# 14  
Old 09-20-2011
Code:
system("ls -la");

You can't directly capture their output like backticks though, as far as I know. You might be able to redirect into a file then read the file after.
This User Gave Thanks to Corona688 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

ssh2 foreach loop issue

Hello Everyone, I have the following codes that only works for the first login element. I can't get it work with the second and third login credentials. Can anyone here see the problem? I ran the code with host1, it works as expect. see below: # ./test.pl host1 Trying to connect... (3 Replies)
Discussion started by: tqlam
3 Replies

2. Shell Programming and Scripting

Using foreach with two lists

Hi everybody, I'm trying to use a foreach command with two lists. The file.txt looks like this: var1: 100 200 300 var2: 3 6 9 I'm trying to use a foreach command to associate the two variables together. My script looks like this: #! /bin/tcsh set a=(`cat file.txt | grep 'var1' | cut -d... (8 Replies)
Discussion started by: SimonWhite
8 Replies

3. Shell Programming and Scripting

foreach in csh

I have a foreach loop in a csh script and I noticed that it tries to find the files with the pattern *$searchpt* in the file name. I'm confused as I never specified checking for the files. foreach f ( *$searchpt* ) set fnew = `echo $f | awk -v searchpat=$searchpt \ ... (1 Reply)
Discussion started by: kristinu
1 Replies

4. Shell Programming and Scripting

expect ssh script issue with if and foreach

Hi, I am trying to create an ssh script to login to cisco routers and activate/deactivate bgp neighbors if they match certain conditions. I dont think my "if" and "foreach" are working correctly. Any help is appreciated. Below is my script: ... (0 Replies)
Discussion started by: blahblahsomeone
0 Replies

5. UNIX for Dummies Questions & Answers

foreach question

OK, so I am extremely rusty and am just getting back to Unix after 9 years. I'm stuck on something easy. I want to search line-by-line for a string in a file, and I want to do this to a series of files in a directory. This works fine to do the search: while read i; do grep $i file2; done... (3 Replies)
Discussion started by: moldoverb
3 Replies

6. Shell Programming and Scripting

foreach loop

Hi everyone Does anyone know what is wrong with this script. i keep getting errors foreach filename (`cat testing1`) set string=$filename set depth=`echo "$string" echo $depth end the error is the following testing: line 1: syntax error near unexpected token `(' testing: line 1:... (3 Replies)
Discussion started by: ROOZ
3 Replies

7. Shell Programming and Scripting

foreach loop

Hi Guys, I have a loop which uses a wildcard i.e. foreach f (*) but when I execute the tcsh file in unix then it gives me an error ->>>>>>>foreach: words not parenthesized<<<<<<<<<<- Any help. (1 Reply)
Discussion started by: abch624
1 Replies

8. Shell Programming and Scripting

foreach folder

Hi, I'm having a small issue here and I can't get it to work. I'm programming a script for bash and I need to do something to all the folder in a directory. So I'm in the directory and I want to use the foreach statement but I dont know how to reference all the folders of that directory. To make... (7 Replies)
Discussion started by: eltinator
7 Replies

9. Shell Programming and Scripting

foreach/grep help!

#!/bin/bash foreach x (67402996 67402998) { grep -a x FINAL2006.dat >> MISSING_RECORDS.dat } I'm trying to pass a list to the variable x, and then grep for that string in FINAL2006.dat... Final2006.dat is in the same folder as my .sh file. I call this with a .cmd file... At any rate,... (6 Replies)
Discussion started by: JimWork
6 Replies
Login or Register to Ask a Question