The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
.
google unix.com



UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
simple tcsh question using foreach moldoverb Shell Programming and Scripting 1 01-07-2009 07:05 PM
foreach statement in ksh asulli01 UNIX for Dummies Questions & Answers 8 11-26-2008 02:55 PM
foreach loop abch624 Shell Programming and Scripting 1 03-19-2008 08:34 PM
foreach folder eltinator Shell Programming and Scripting 7 08-13-2007 02:37 AM
foreach loop question clipski UNIX for Dummies Questions & Answers 7 12-22-2005 12:28 PM

Reply
 
Submit Tools LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 01-07-2009
Registered User
 

Join Date: Jan 2009
Posts: 3
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 <file1.txt

This also works fine to read a directory:

foreach file ('/bin/ls *.txt')
echo $file
end

but if I try and combine the two, no joy.

foreach file ('/bin/ls *.txt')
while read i; do grep $i file2; done <$file
end

Help please!
Reply With Quote
Sponsored Links
  #2 (permalink)  
Old 01-07-2009
Registered User
 

Join Date: Dec 2008
Location: .at
Posts: 1,067
Try this:
Code:
for file in `/bin/ls *.txt`
do
    while read i
    do
        grep $i file2
    done < $file
done
Of course, if your grep supports the -f switch you can try
Code:
for file in `find . -prune -name '*.txt' -print`
do
    grep -f $file $file2
done
HTH
/pludi
Reply With Quote
  #3 (permalink)  
Old 01-07-2009
Registered User
 

Join Date: Jan 2009
Posts: 3
I get a 'bash: $file: ambiguous redirect ' in the first example.
Reply With Quote
  #4 (permalink)  
Old 01-11-2009
Registered User
 

Join Date: Dec 2008
Location: .at
Posts: 1,067
Then rewrite the inner loop to
Code:
cat ${file} | while read i
do
    grep $i file2
done
Reply With Quote
Google The UNIX and Linux Forums
Reply

Bookmarks

Tags
None

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:




All times are GMT -4. The time now is 07:54 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66