proper syntax of grep command


 
Thread Tools Search this Thread
Operating Systems BSD proper syntax of grep command
# 1  
Old 02-27-2009
proper syntax of grep command

I'm learning UNIX on my mac (BSD), using a manual. I'm trying to figure out the grep command, and am getting something wrong. I've opened one of my files in NeoOffice and am looking for a string, the phrase 'I am writing.' I've been to some sites to get the proper syntax, and from what I can see the proper syntax is:

grep "I am writing" [file name]

A lot of times I get the message that no such file or directory exists, even when I think I've entered all the information. When that doesn't happen, the cursor just blinks, with no display of the string I'm looking for. Can someone tell me what I'm missing? Granted, the book i'm using is the OS X missing manual by david pogue, and it's only a few paragraphs on the command, so I may not be comprehending something. Please, if you could write out the proper syntax (including any slashes, dots, etc.) so I can compare it to what I'm doing.
# 2  
Old 02-27-2009
Tools

grep will return all lines that contain a searched-for string.
And I have seen some odd results when the lines are not delimited as usually expected with a line-feed at the end of each. So, that is a first thought - that your file is not correctly delimited. (see commands like dos2unix and unix2dos for more on this)
The next issues are capitalization and spacing. The grep command, without additional options, is an exact match. This relates to my comment on spacing as there might be two spaces between certain words, they words may be on separate lines, there could be tab characters between the words.

See the following example:
Code:
> cat file002
this is boring
but I am writing
so we can test
to see that I
am writing
> grep "I am writing" file002
but I am writing

# 3  
Old 02-27-2009
Can you explain what you mean by 'delimited?'

I just copied the NeoOffice file (saved as .doc, a word format) to text edit (a .txt file) and the command worked (grep 'I am writing') but it printed the whole letter, or most of it -- which I'm guessing means that it found all the lines with any of the three words in the string and printed those lines. Is it possible to use 'grep' to find this particular sentence fragment and no other lines which don't contain this entire fragment?
# 4  
Old 02-27-2009
Quote:
Originally Posted by Straitsfan
Can you explain what you mean by 'delimited?'

I just copied the NeoOffice file (saved as .doc, a word format) to text edit (a .txt file) and the command worked (grep 'I am writing') but it printed the whole letter, or most of it -- which I'm guessing means that it found all the lines with any of the three words in the string and printed those lines. Is it possible to use 'grep' to find this particular sentence fragment and no other lines which don't contain this entire fragment?
Copying a .doc to something named .txt does NOT make it a text file.

I think this is the basis of your problem and misunderstanding.

Try doing a "Save As" and choose something that is Text (I don't know what Neo offers you, probably "Text", perhaps some variants).

Grep is designed to work on text files, not wordprocessor files.
# 5  
Old 02-28-2009
Bug

I saved it as a txt file (text) in NeoOffice. But the grep command doesn't work. I entered grep "I am writing" then the pathname, ending with the file name (\name\ name\ name\.txt [The file name consists of three letters, with a space between them, no space between the last word and dot) but got the message 'No such file or directory.' when I try it with the copy saved in Apple's Text Edit (the txt extension) application it worked fine.

Can you tell me exactly what is meant by a text file and how it differs from a word processing file? Because I can choose fonts and formatting in Text Edit, just like Word or NeoOffice.

Last edited by Straitsfan; 02-28-2009 at 01:45 PM..
# 6  
Old 03-22-2009
Put the filename with spaces in it inside speech marks, e.g.:
Code:
$ grep "I am writing" "/home/user/docs/text file.txt"

File names with spaces are best avoided for Unix...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

FIND and GREP syntax

I have a question to this command find . -type f -name ".*txt" -exec grep "text" {}\. The find command will locate a file name with the extension of txt once per round and find the word "text" in the content of the file or the find command will locate all the file names with the extension of... (2 Replies)
Discussion started by: TestKing
2 Replies

2. Shell Programming and Scripting

Proper Use of WAIT Command Within .ksh

I am trying to write a korn shell script (Z.ksh) that will execute three other korn shell scripts within it. The three korn shell scripts (A.ksh,B.ksh,C.ksh) each execute a series of .sas programs. A.ksh, B.ksh, and C.ksh must each wait until the last .sas program within them executes and finishes... (2 Replies)
Discussion started by: imoore
2 Replies

3. Shell Programming and Scripting

Help on grep syntax in UNIX

Dear Team /app/Appln/logs/ echo Session used server are 'grep -i pid|grep -i session | cut -d'.' -f1 | awk '{print $9}' | sort | uniq' Output - lxserver01 lxserver02 lxserver03 When I grep session pid in logs server details I can see above distinct server details but I... (6 Replies)
Discussion started by: skp
6 Replies

4. Shell Programming and Scripting

Proper way to pipe into awk command

What is the proper way to run two commands together? For example, in the below I would like run a command in bold then pipe that output to awk to re-format it. Thank you :). bedtools nuc -fi /home/cmccabe/Desktop/bed/hg19.fa -bed /home/cmccabe/Desktop/bed/xgen_baits.bed >... (3 Replies)
Discussion started by: cmccabe
3 Replies

5. Shell Programming and Scripting

Need to grep this Data in proper format:- Please Guide

Hi Guys, I need to grep below data in this format backup_id creation expiration policy sched_label backup_id = picoserver38_1212077050, version = 2 creation = 05/29/2008 18:04:10 (1212077050) expiration = 06/29/2008 18:04:10 (1214755450) retention_level = 3, fragment = 2, file_num = 1... (14 Replies)
Discussion started by: manalisharmabe
14 Replies

6. UNIX for Dummies Questions & Answers

Proper syntax

I'm new to Unix, and just had a quick question. I'm writing a bash script, and I was wondering what proper programming etiquette was for piping. How many pipes is too many pipes? OLDEST=$(find . -maxdepth 1 -type d -newermt 2012-07-01 ! -newermt 2012-07-30 | xargs ls -1td | tail -2) echo... (1 Reply)
Discussion started by: jrymer
1 Replies

7. UNIX for Dummies Questions & Answers

| help | unix | grep (GNU grep) 2.5.1 | advanced regex syntax

Hello, I'm working on unix with grep (GNU grep) 2.5.1. I'm going through some of the newer regex syntax using Regular Expression Reference - Advanced Syntax a guide. ls -aLl /bin | grep "\(x\)" Which works, just highlights 'x' where ever, when ever. I'm trying to to get (?:) to work but... (4 Replies)
Discussion started by: MykC
4 Replies

8. Shell Programming and Scripting

Net::SSH::Perl->Execute any unix command & display the output in a proper form

Net::SSH::Perl ...... how to print the output in a proper format my $cmd = "ls -l"; my $ssh = Net::SSH::Perl->new($host); $ssh->login($user, $pass); my($stdout, $stderr, $exit) = $ssh->cmd("$cmd"); print $stdout; the script works fine, but i am unable to see the output... (2 Replies)
Discussion started by: gsprasanna
2 Replies

9. Shell Programming and Scripting

grep syntax for this...

I wanna grep for a pattern logs 1 2 & 3 within a folder containing 100 logs grep "test" /folder/log1 /folder/log2 /folder/log3 The above command will work fine but is there any command like grep "test" /folder/log1, log2, log3 or something similar (4 Replies)
Discussion started by: roshanjain2
4 Replies

10. Shell Programming and Scripting

Need help with the syntax using awk+grep

Hi, I need to extract information from a 4 GB file based on the following conditions: 1) Check for the presence of a set of account numbers Each account number is present along with other information within a PAGESTART and PAGEEND. The file looks like this: PAGESTART ACCOUNT NO 123... (6 Replies)
Discussion started by: kthri
6 Replies
Login or Register to Ask a Question