wildcard


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting wildcard
# 1  
Old 05-02-2009
wildcard

Hi, I have this code to search all "cif" files using wildcard

for file in *.cif
do
grep "Uiso" $file | awk '{ print $3, $4, $5 }' > tet
done

I get this error
"grep: *.cif: No such file or directory"

Please where am I going wrong!!!

Thank you in advance
# 2  
Old 05-02-2009
Try....

for file in *.cif
do
echo $file | grep "Uiso" $file | awk '{ print $3, $4, $5 }' > tet
done
# 3  
Old 05-02-2009
Quote:
Originally Posted by protocomm
Try....

for file in *.cif
do
echo $file | grep "Uiso" $file | awk '{ print $3, $4, $5 }' > tet
done

I have tried that and I get the same error as before "grep: *.cif: No such file or directory"
# 4  
Old 05-03-2009
It appears to me that you shell is not able to evaluate the *.cif. Try this

Code:
for file in `ls *.cif`
do
grep "Uiso" $file | awk '{ print $3, $4, $5 }' >> tet
done

cheers,
Devaraj Takhellambam
# 5  
Old 05-03-2009
Quote:
Originally Posted by princessotes
for file in *.cif
do
grep "Uiso" $file | awk '{ print $3, $4, $5 }' > tet
done
Here you overwrite tet file for each match file in loop ! , that's what you want ?

Quote:
Originally Posted by princessotes
I get this error
"grep: *.cif: No such file or directory"
Yep , no match , grep can't find the file.

Solution(awk and shell redirect):
Code:
awk '/Uiso/{ print $3, $4, $5 }' *.cif 2>/dev/null >> tet

# 6  
Old 05-03-2009
No that i would want to say is this....

Try....

for file in *.cif
do
echo $file | grep "Uiso" | awk '{ print $3, $4, $5 }' > tet
done
# 7  
Old 05-03-2009
Which shell are you using?
As danmero states you will overwrite the output file for every grep.
Here is an alternative which uses find to expand the filenames.

Code:
#!/bin/ksh
>tet        # Initialise output file
(
find . -name '*.cif' -print | while read file
do
           grep "Uiso" "${file}" | awk '{ print $3, $4, $5 }'
done
) >> tet

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. OS X (Apple)

Help with wildcard

CD_numb is AM017 this code: set the_Firstcom_CD to (do shell script "ls -d '/volumes/audioNAS/Firstcom/Access Music/' ") & CD_numb gives me this: "/volumes/audioNAS/Firstcom/Access Music/AM017" the item I am looking for is AM017Q. I can get the "*" syntax right so it never finder... (7 Replies)
Discussion started by: sbrady
7 Replies

2. Shell Programming and Scripting

Wildcard for grep

GNU grep with Oracle Linux 6.3 I want to grep for strings starting with the pattern ora and and having the words r2j in it. It should return the lines highlighted in red below. But , I think I am not using wildcard for multiple characters correctly. $ cat someText.txt ora_pmon_jcpprdvp1... (3 Replies)
Discussion started by: kraljic
3 Replies

3. Shell Programming and Scripting

Wildcard in ls

Hi Experts, I want to use ls in the below form: ls -l *.{txt,TXT} (working fine) but when i am declaring a variable, VAR="*.{txt,TXT}" ls -l $VAR is not working. Please help. Thanks. (4 Replies)
Discussion started by: sugarcane
4 Replies

4. Shell Programming and Scripting

Using wildcard in if statement

I'm trying to make a small script to see if you say a specific word, in bash. Here is my code so far : if ]; then echo "You typed Something Device Something" fi exit 0 It does not echo what it should, even if i type something along the lines of "random Device stuff" Please help,... (2 Replies)
Discussion started by: DuskFall
2 Replies

5. Shell Programming and Scripting

wildcard help!!

i have got heaps of files (.pdf, .txt and .doc) files in one folder, i am making a program in PERL that helps me find the files i want easier using shell wildcard, something like this!! print "Enter a pattern: (must be in )"; $input = <STDIN>; if (The input is in and valid wildcard... (3 Replies)
Discussion started by: bshell_1214
3 Replies

6. Shell Programming and Scripting

How to use wildcard * in if?

Hi, Can anyone help me how to use * in if statement. File contains below line1:a|b|c|Apple-RED| line2:c|d|e|Apple-Green| line3:f|g|h|Orange| I need to find line by line 4th field contains 'Apple' or not. Please help me at the earliest. (6 Replies)
Discussion started by: jam_prasanna
6 Replies

7. UNIX for Advanced & Expert Users

wildcard help

Can someone please explain the wildcards in this. How is this recursive? When I put this in my terminal it recursively displayed everything. ls .* * (6 Replies)
Discussion started by: cokedude
6 Replies

8. Shell Programming and Scripting

Wildcard comparison

Just a quick question: if I want to do a comparison with a wildcard in a shell script, do i just use '*'? Heres what I have: elif ; then continue but that doesnt evaluate right. It tries to compare against the literal '/apps*' instead of anything that begins with '/apps' (2 Replies)
Discussion started by: rdudejr
2 Replies

9. UNIX for Dummies Questions & Answers

wildcard

what will the cmd below do? ls *.3 1 members mentions that to seek all permutations and combinations of the mp3 extension ill have to use curly braces, {} and not, . what then will do? (13 Replies)
Discussion started by: abhi
13 Replies

10. UNIX for Dummies Questions & Answers

Find wildcard .shtml files in wildcard directories and removing them- How's it done?

I'm trying to figure out how to build a small shell script that will find old .shtml files in every /tgp/ directory on the server and delete them if they are older than 10 days... The structure of the paths are like this: /home/domains/www.domain2.com/tgp/ /home/domains/www.domain3.com/tgp/... (1 Reply)
Discussion started by: Neko
1 Replies
Login or Register to Ask a Question