grep command help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting grep command help
# 1  
Old 04-21-2011
grep command help

Hi guys,
I am trying to "grep" a line from the file which has a certain value (49 in my example below) from the begining of the line ONLY. I am using the following command:
Code:
$ PNUM=49
$ grep "^ *${PNUM} *" firmexbytes.dta
  494   8134     A023     A024
   49   812A     9871     9872
  492   A961     A962     A963
  491   0B77     0B78     0B79
  495   0B7A     0B7B     0B7C
$

The problem is that the above command returns more then I need.
May be someone knows the way to use "grep" in such a way that it returns only ONE line which contains the specified value (strict) if it is in the first colomn only. Thanks
# 2  
Old 04-21-2011
Code:
grep -E "^[ \t]*49[ \t]+" infile
   49   812A     9871     9872

# 3  
Old 04-21-2011
Thanks, but it seems that my shell has restrictions on -E option:
Code:
$ grep -E "^[ \t]*49[ \t]+" firmexbytes.dta
grep: illegal option -- E
Usage: grep -hblcnsviw pattern file . . .
$

Is there any walk around ? Thanks
# 4  
Old 04-21-2011
Quote:
Originally Posted by aoussenko
The problem is that the above command returns more then I need.
That's because '<space>*' searches for zero or more occurrences of a space. You need '<space><space>*', i.e. two spaces and an asterisk, to say I want at least one space:
Code:
$ grep "^ *${PNUM} *" firmexbytes.dta
  494   8134     A023     A024
   49   812A     9871     9872
  492   A961     A962     A963
  491   0B77     0B78     0B79
  495   0B7A     0B7B     0B7C
$ grep "^ *${PNUM}  *" firmexbytes.dta
   49   812A     9871     9872

You could also use awk to achieve the same goal:
Code:
$ awk -v pnum=49 '$1==pnum' firmexbytes.dta
   49   812A     9871     9872

Best regards,
Mark.
# 5  
Old 04-21-2011
Code:
awk '$1==49' file

This User Gave Thanks to Franklin52 For This Post:
# 6  
Old 04-21-2011
To keep it a bit more generic and yes, egrep or grep -E is not really needed, you can try this:

Code:
grep "^ *${PNUM} \+" infile
   49   812A     9871     9872

If there is just blanks it will work - if there is also tabs in between, it will not. You can either try for egrep or just use the solution Franklin posted.
# 7  
Old 04-21-2011
Thanks a lot to all you guys!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Help on grep command

for example i have a directory home/solaris/unix/samplefiles/ with defaults files in it.. those default files have 1 word in common "UNIX". how can i list the files without "UNIX" words in it using grep command thanks, im using unix solaris, korn shell.. (1 Reply)
Discussion started by: daveaztig14
1 Replies

2. Shell Programming and Scripting

Grep command giving different result for different users for same command

Hello, I am running below command as root user #nodetool cfstats tests | grep "Memtable switch count" Memtable switch count: 12 Where as when I try to run same command as another user it gives different result. #su -l zabbix -s /bin/bash -c "nodetool cfstats tests | grep "Memtable switch... (10 Replies)
Discussion started by: Pushpraj
10 Replies

3. Shell Programming and Scripting

Grep command

grep -i -f panel_genes.txt hg19_refGene.txt > match.txt seems to be pulling names the do not exist in the input file (panel_genes.txt) - the output is attached as well (match.txt) For example, RNF185 or ZNF146 are not genes in the input. I am trying to match the input file genes only and am... (9 Replies)
Discussion started by: cmccabe
9 Replies

4. Shell Programming and Scripting

help on grep command...

Hi I have lots of file in on folder and i want to egrep from only few files. List of files...... Polt_KJ_430_OutputRBS_istUt_CR2.log Polt_KN_4122_OutputRBS_ncChk_CR.log Polt_LN_2230_OutputRNC_Hth_CLKLKL.log Solt_KJ_430_OutputRBS_istUt_CR2.log Solt_KN_4122_OutputRBS_ncChk_CR3.log... (2 Replies)
Discussion started by: asavaliya
2 Replies

5. Shell Programming and Scripting

Grep Command

Hi, I have around 500 Text files and Each file will be having either String1 or String2. I want to list the file only which has String1 and Sting2 in a single command.. (5 Replies)
Discussion started by: balasubramani04
5 Replies

6. Shell Programming and Scripting

Help with using grep command with copy command

Hi, im taking an entry Unix class, and as part of my lab assignment I have to copy all files in the /home/david/lab3 directory that have the file extension .save to your lab3/temp directory. I'm having trouble getting the grep to do anything worth while I've been trying to do: cp... (6 Replies)
Discussion started by: Critical jeff
6 Replies

7. Shell Programming and Scripting

can anyone help with shell script command about searching word with grep command?

i want to search in the current directory all the files that contain one word for example "hello" i want to achieve it with the grep command but not with the grep * (2 Replies)
Discussion started by: aintour
2 Replies

8. UNIX for Advanced & Expert Users

how to exclude the GREP command from GREP

I am doing "ps -f" to see my process. but I get lines that one of it represents the ps command itself. I want to grep it out using -v flag, but than I get another process that belongs to the GREP itself : I would like to exclude # ps -f UID PID PPID C STIME TTY TIME CMD... (2 Replies)
Discussion started by: yamsin789
2 Replies

9. UNIX for Dummies Questions & Answers

grep command

hi all i have directory /usr under this directory i have subdirectories tmp1,tmp2,tmp3 like this /usr/tmp1 /usr/tmp2 /usr/tmp3 and so on i want to search string in files (i don't know the name of the files)and i want to serch it in all the directories under the /usr how shell i do... (3 Replies)
Discussion started by: naamas03
3 Replies

10. Shell Programming and Scripting

grep command

What is the meaning of this grep -v $object grant_BU.sql>temp (1 Reply)
Discussion started by: debasis.mishra
1 Replies
Login or Register to Ask a Question