Grep with wildcard


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Grep with wildcard
# 8  
Old 12-22-2018
Quote:
Originally Posted by bakunin
[..] because this is a (GNU, i believe) non-standard extension [..]
GNU, but also BSD grep...
# 9  
Old 12-23-2018
... and SysV. And all derivates i.e. most if not all commercial Unix.
# 10  
Old 06-21-2019
Many thanks
how can i find any help for regex e.g in "man command in terminal"?

test is:
somethin

somethina

somethinabc

something

somethinggg



Code:
grep "something*" test

Code:
somethin
somethina
somethinabc
something
somethinggg

somethina !?
somethinabc !?


but
Code:
grep "something?" test

no thing find
# 11  
Old 06-21-2019
Code:
man regexp

gives you a comprehensive description of what is in the libc (that C-compiled programs use).
The trailing g* means "g zero or more times" and is useless unless there is a $ anchor (line end):
g*$ forces any number of g until the line end.
The g? in the meaning of "g zero or one time" is only defined for ERE (extended regular expression), used with egrep or grep -E and awk and most modern languages.

Last edited by MadeInGermany; 06-21-2019 at 09:32 AM..
# 12  
Old 06-24-2019
wildcard in grep

Quote:
Originally Posted by Corona688
grep uses regexes, not globs, with slightly different meanings. In glob, * means 'zero or more characters', in regex, it means 'zero or more of the previous character'.

So something* in regex terms would match something, somethingg, somethingggggggggggggggggggggg, somethin, but not somethina.

In regex, ? means "zero or one of the previous character" while . means "any character". You can combine the two as .? to mean "zero or one of any character" for example.

So try grep 'sample.txt' to match sampleatxt, samplebtxt, samplectxt, etc.



"grep uses regexes, not globs" is this mean extended regular expression is used by grep?
and globs means basin regular expression?


many thanks
samad

--- Post updated at 05:52 AM ---

Quote:
Originally Posted by Corona688
grep uses regexes, not globs, with slightly different meanings. In glob, * means 'zero or more characters', in regex, it means 'zero or more of the previous character'.

So something* in regex terms would match something, somethingg, somethingggggggggggggggggggggg, somethin, but not somethina.

In regex, ? means "zero or one of the previous character" while . means "any character". You can combine the two as .? to mean "zero or one of any character" for example.

So try grep 'sample.txt' to match sampleatxt, samplebtxt, samplectxt, etc.

but something* match "somethinga" that a in somethinga isn't previous character!

--- Post updated at 06:10 AM ---

Quote:
Originally Posted by Corona688
grep uses regexes, not globs, with slightly different meanings. In glob, * means 'zero or more characters', in regex, it means 'zero or more of the previous character'.

So something* in regex terms would match something, somethingg, somethingggggggggggggggggggggg, somethin, but not somethina.

In regex, ? means "zero or one of the previous character" while . means "any character". You can combine the two as .? to mean "zero or one of any character" for example.

So try grep 'sample.txt' to match sampleatxt, samplebtxt, samplectxt, etc.



you say " but not somethina" this is incorrect because the something* match somethina.


Code:
[samad@localhost test]$ grep "something*" test 
somethina

# 13  
Old 06-24-2019
As I said already, grep something* without an ending anchor is like grep somethin because there may be zero gs and any characters may follow.
The shell and find -name use glob expression.
grep uses basic regular expression.
egrep (or the equivalent grep -E) use extended regular expression.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Unable to grep using wildcard in a file.

I wish to check if my file has a line that does not start with '#' and has 1. Listen and 2. 443 echo "Listen 443" > test.out grep 'Listen *443' test.out | grep -v '#' Listen 443 The above worked fine but when the entry changes to the below the grep fails... (2 Replies)
Discussion started by: mohtashims
2 Replies

2. Shell Programming and Scripting

Grep and BzGrep with Wildcard in Search Pattern

Hello All, I hope this is the right area. If not, Kindly let me know and I will report in the appropriate spot. I am needing to find a search pattern that will make the * act as Wildcard in the search pattern instead of being literal. The example I am using is bzgrep "to=<*@domain.com>"... (5 Replies)
Discussion started by: mancountry
5 Replies

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

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

5. Shell Programming and Scripting

Grep Wildcard search

How can i grep for a pattern with wildcard using grep? I want to identify all the lines that start with SAM and end in .PIPE IN.TXT SAM_HEADER.PIPE SAM_DETAIL.PIPE SAM_INVOICE.PIPE Can i do something like grep SAM*.PIPE IN.TXT (2 Replies)
Discussion started by: venky338
2 Replies

6. Shell Programming and Scripting

wildcard inside regular expression for grep

Hi, I'm on a Linux machine with a bash shell. I have some apache logs from where I want to extract the lines that match this pattern : "GET /dir1/dir2/dir3/bt_sx.gif HTTP/1.1" but where "/dir1/dir2/dir3/bt_sx" may vary , so I would like to grep something like cat apache.log | grep "\"GET... (2 Replies)
Discussion started by: black_fender
2 Replies

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

8. Shell Programming and Scripting

Grep with wildcard in middle of word

How can grep G.*schema give me the result: ${Gacntg_dt}""'"' doesn't G.*schema say give me an unlimited number of characters between G and schema? :confused: (3 Replies)
Discussion started by: danmauer
3 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