grep output clarification


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users grep output clarification
# 1  
Old 03-30-2009
grep output clarification

dear all,

can anyone clarify on this below regular expression output...because i feel this is not the output i should get according to the concepts...

NOTE :Executed on linux system

Code:
$ cat grepf
abbbbd
a.c
abc
ac
abcd
yyyy
$ grep ^\a.c  grepf
a.c
abc
abcd
$ grep a.c  grepf
a.c
abc
abcd
$ grep a\.c  grepf
a.c
abc
abcd


Last edited by Yogesh Sawant; 03-30-2009 at 11:45 AM.. Reason: added code tags
# 2  
Old 03-30-2009
Sure...

Your use of \. didn't reach grep, because the shell saw the \ and escaped the . which means grep saw a.c and not a\.c

What you want to do is either
Code:
$ grep 'a.c' grepf

or
Code:
$ grep a\\.c grepf

It's pretty safe to say that since most shells do some kind of regular expression handling, when you use grep you should put the regexp in quotes.

Last edited by Yogesh Sawant; 03-30-2009 at 11:44 AM.. Reason: added code tags
# 3  
Old 03-30-2009
Quote:
Originally Posted by mgessner
Sure...

Your use of \. didn't reach grep, because the shell saw the \ and escaped the . which means grep saw a.c and not a\.c

What you want to do is either

$ grep 'a.c' grepf

or

$ grep a\\.c grepf

It's pretty safe to say that since most shells do some kind of regular expression handling, when you use grep you should put the regexp in quotes.
Then wht is the meaning of "." and "\."
# 4  
Old 03-30-2009
Quote:
Originally Posted by rajp_8007
Then wht is the meaning of "." and "\."
To the shell?

In a shell, . is used for globbing, which is similar but not the same as what grep does. Globbing is what lets you 'ls *' and get anything useful. The shell uses backslashes to mean to "take the next character literally", also much like in grep. But since the shell does command separation and grep does not it's useful in other places. For example if you have a filename with spaces, you can specify it like filename\ with\ spaces to avoid needing single or double quotes.
# 5  
Old 03-30-2009
Quote:
Originally Posted by mgessner
Sure...

Your use of \. didn't reach grep, because the shell saw the \ and escaped the . which means grep saw a.c and not a\.c

What you want to do is either
Code:
$ grep 'a.c' grepf

or
Code:
$ grep a\\.c grepf

It's pretty safe to say that since most shells do some kind of regular expression handling, when you use grep you should put the regexp in quotes.
Thanks for ur timely reply...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Grep output

Hi. I have a command line that will generate exif data from .jpg files... So to get the Camera Model I use: find -iname "*.jpg" -print0 | xargs -0 exiftool -a | grep "Camera Model" But I want the file name AND the camera model... How to I get the grep to give me TWO bits of information from... (2 Replies)
Discussion started by: TuftyDave
2 Replies

2. UNIX for Dummies Questions & Answers

How to have the output in grep?

Hi guys - I am trying to have a certain file display information horizontally divided by a pipe. for example file name: foo.dat has information like this: name1 name2 name3 namenamename4 namene5 I would like it to display like this: name1|name2|name3|namenamename4|namene5 ... (6 Replies)
Discussion started by: DallasT
6 Replies

3. Shell Programming and Scripting

How to grep the desired output and output to a file?

currently I have process from a raw file to this stage ALTER TABLE "EXCEL_ADMIN"."TC_TXN_VOID" ADD CONSTRAINT "PK_TC_TXN_VOID" PRIMARY KEY ("TC_TXN_IID") ALTER TABLE "EXCEL_ADMIN"."TC_TXN_AMT" ADD CONSTRAINT "PK_TC_TXN_AMT" PRIMARY KEY ("TC_TXN_AMT_IID") ALTER TABLE... (10 Replies)
Discussion started by: jediwannabe
10 Replies

4. Shell Programming and Scripting

grep output

hi i am running grep -c on a bunch of files some of which may be non existent. The output i get is in the same order as the files grep checks and this is what i want as i need to copy the output to a spreadsheet. However when i tried to pipe the output to sed to strip away the filenames and just... (5 Replies)
Discussion started by: chronics
5 Replies

5. Shell Programming and Scripting

grep output

From below mentioned line,i have to display output as last word only ie:arch_1_105366_720809746.dbf -rw-r----- 1 oracle dba 98887680 02 Mar 12:01 arch_1_105366_720809746.dbf Please .. (5 Replies)
Discussion started by: Sanal
5 Replies

6. UNIX for Advanced & Expert Users

Need clarification

We are facing problem while executin below script, cat $PIPE_FILE | imscp - "${LRX_FILE_LOC}" 2>&1 | tee "${LIST_DIR}/${IMSCP_OUT_FILE}" & sqlplus -s ${REPORTING_CONNECT} <<EOF whenever sqlerror exit 1 rollback spool ${PIPE_FILE} start ${LRX_EXEC_SQL} ${LRX_MDL_RUN_DATE} spool off exit... (4 Replies)
Discussion started by: samiks14
4 Replies

7. UNIX for Dummies Questions & Answers

Help with grep output

Hello, I have a list of stings that I'm using with grep to determine which files contain the strings. Here's what I have now: list of strings in a file (list.txt): /directory/direc tory/file.jsp /dire ctory/directory/direct ory/file.jsp grep I'm doing to find files that contain the... (4 Replies)
Discussion started by: upstate_boy
4 Replies

8. Shell Programming and Scripting

GREP with contain output

How can I perform a grep and it will give me a contain word (maintenance) instead of a string or the whole line of info. grep with exclusive output? or is there a CONTAIN with IF statement ? I have a file call yast2_vhost.conf and it contain multiple entries call maintenance.html... (2 Replies)
Discussion started by: yoom@hostwebase
2 Replies

9. AIX

grep -- clarification

Hi, I have a file which contains below info : $ cat test_file kenny denny kite I want to get all th file names which starts with k. Hence i used below command but the result was not up to the mark : $ grep 'k*' test_file kenny denny kite Can someone please explain me why this is... (1 Reply)
Discussion started by: merajh
1 Replies

10. Shell Programming and Scripting

output of grep

hi, why the following is giving entire /etc/passwd file as output even when it does not contain ^ or $ . grep ' ' /etc/passwd whereas the following is not giving any output grep ' ^$ ' /etc/passwd (3 Replies)
Discussion started by: useless79
3 Replies
Login or Register to Ask a Question