How to use wildcard * in if?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to use wildcard * in if?
# 1  
Old 05-06-2011
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.
# 2  
Old 05-06-2011
Code:
 
while read line; do
 
if echo $line|grep '^[^|]*|[^|]*|[^|]*|Apple|'; then
 
fi
 
done <filename

# 3  
Old 05-06-2011
What is your final goal ?

Display lines whose 4th field contains the word "Apple"
Code:
awk -F\| '$4~/Apple/' filename

Display lines whose 4th field do not contain the word "Apple"
Code:
awk -F\| '$4!~/Apple/' filename


Last edited by ctsgnb; 05-06-2011 at 10:22 AM..
# 4  
Old 05-06-2011
Thanks for your reply.

but i am not getting the output

---------- Post updated at 03:13 PM ---------- Previous update was at 03:11 PM ----------

my need

if 4th field contains Apple i need to run some commands

while using if i am checking the conditions for other columns too
# 5  
Old 05-06-2011
use nawk instead of awk if you are running a SunOS/Solaris plateform

also try
Code:
awk -F\| '$4~/Apple/{print}' yourfile
awk -F\| '$4!~/Apple/{print}' yourfile


Last edited by ctsgnb; 05-06-2011 at 10:23 AM..
# 6  
Old 05-06-2011
Don't forget to set FS in awk ...

Alternatively perhaps just shell?
Code:
while IFS=\| read f1 f2 f3 f4 f5
do
  case $f4 in 
    *Apple* ) 
       echo "$f1 contains Apple ($f4)"  
  esac
done < infile

This User Gave Thanks to Scrutinizer For This Post:
# 7  
Old 05-06-2011
Quote:
Originally Posted by Scrutinizer
Don't forget to set FS in awk ...

... Oooops... fixed ! thx
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. 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

7. Shell Programming and Scripting

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 (6 Replies)
Discussion started by: princessotes
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