How does egrep work?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How does egrep work?
# 1  
Old 02-08-2013
How does egrep work?

I use grep all the time. Don't have a problem understanding it. But I am looking at a script that uses 'eprep'. Basically we have something that uses ssh to log into a remote host and execute a "df -h" and emails us. We use that to check space on remote machines. Lately I have noticed the 'egrep' command isn't returning anything. Someone else who is no longer around wrote this. I don't understand what the statement is doing. On one machine it returns what I would expect, on others, it returns nothing. On a working machine:
Code:
 ssh remote_machine  df -h | /usr/bin/egrep "100%|9[0-9]%|8[0-9]%|7[0-9]%|capacity"
Filesystem             size   used  avail capacity  Mounted on
/dev/md/dsk/d33         87G    65G    20G    77%    /opt
/dev/md/dsk/d34        7.9G   6.8G   983M    88%    /export/home
/opt/u01                87G    65G    20G    77%    /u01
/opt/u02                87G    65G    20G    77%    /u02
/opt/u01/u03            87G    65G    20G    77%    /u03
/u02/u04                87G    65G    20G    77%    /u04

Machine that doesn't work:

Code:
  ssh remote_host  df -h | /usr/bin/egrep "100%|9[0-9]%|8[0-9]%|7[0-9]%|capacity"
Filesystem             size   used  avail capacity  Mounted on

If I leave off the egrep, I do see the output of the df command, so I am sucessfully logging into the remote machine.
# 2  
Old 02-08-2013
Please post output from the second df command.
# 3  
Old 02-08-2013
I did post the output. It simply returns the heading to a df, no content:

Code:
ssh remote_machine df -h | /usr/bin/egrep "100%|9[0-9]%|8[0-9]%|7[0-9]%|capacity"

Filesystem             size   used  avail capacity  Mounted on

# 4  
Old 02-08-2013
I meant the df output without egrep filtering.
And, I assume that you realise that the filter only passes through specific percentages/text from its input.
# 5  
Old 02-08-2013
Ah, OK. No I didn't understand that. I tried the egrep and just grepped for capacity, but didn't understand the percentages. Here is the df without the egrep. Now that you said that I am guessing it is looking for output that is 70% or above:

Code:
Filesystem             size   used  avail capacity  Mounted on
/dev/md/dsk/d30         16G   4.6G    11G    30%    /
/devices                 0K     0K     0K     0%    /devices
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                   8.1G   1.4M   8.1G     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab
/platform/SUNW,T5140/lib/libc_psr/libc_psr_hwcap2.so.1    16G   4.6G    11G    30%    /platform/sun4v/lib/libc_psr.so.1
/platform/SUNW,T5140/lib/sparcv9/libc_psr/libc_psr_hwcap2.so.1    16G   4.6G    11G    30%    /platform/sun4v/lib/sparcv9/libc_psr.so.1
fd                       0K     0K     0K     0%    /dev/fd
/dev/md/dsk/d32         16G   5.8G    10G    37%    /var
swap                   8.1G   8.3M   8.1G     1%    /tmp
swap                   8.1G    48K   8.1G     1%    /var/run
/dev/md/dsk/d33         87G    47G    39G    55%    /opt
/dev/md/dsk/d34        7.9G   4.7G   3.1G    61%    /export/home
/opt/u01                87G    47G    39G    55%    /u01
/opt/u02                87G    47G    39G    55%    /u02
/opt/u01/u03            87G    47G    39G    55%    /u03

# 6  
Old 02-08-2013
The "|" in egrep is an "or".
It problably make more sense to convert to
Code:
ssh remote_machine df -h | awk 'NR==1 {header=$0 RS} $5~/[7-9][0-9]%|100%/ {print header $0; header=""}'

awk takes the same ERE as egrep, namely "[7-9][0-9]%|100%" but this operates on $5=column#5 only.
The main advantage is that it only prints the header (from NR=line#1) if needed.
This User Gave Thanks to MadeInGermany For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. IP Networking

Discussion at work, would a router work pluging a cable in wan1 and lan1?

hi all. and sorry for the random question, but this sparkled a raging flame-war at work and i want more points of view situation a router, with linux of some sort, dhcp client requesting for ip in wan1 (as usual with wan ports) dhcp server listening in lan1, and assigning ip (as usual... (9 Replies)
Discussion started by: broli
9 Replies

2. Shell Programming and Scripting

My script work on Linux but not work in sunos.

My script work on Linux but not work in sun os. my script. logFiles="sentLog1.log sentLog2.log" intial_time="0 0" logLocation="/usr/local/tomcat/logs/" sleepTime=600 failMessage=":: $(tput bold)Log not update$(tput rmso) = " successMessage="OK" arr=($logFiles)... (7 Replies)
Discussion started by: ooilinlove
7 Replies

3. Shell Programming and Scripting

Help with egrep

Hi, I need to search for a exact word in a file and I have a list of allowable values in a list file. I search something like this using egrep -f option: >egrep -f list.txt data.txt New New York NewYork > list.txt file has the allowable value for search and this file can be edited to... (5 Replies)
Discussion started by: calredd
5 Replies

4. Shell Programming and Scripting

egrep

Hi, I am wondering if it's possible to link multiple patterns with egrep. Here here is what I am doing : grep -v ";;" | grep -v ARC_TIME | grep -v \* | grep -v STAS0 Can I do all of this by invoking egrep just once ? Thanks (4 Replies)
Discussion started by: Aswex
4 Replies

5. Shell Programming and Scripting

if [ -z echo foo | egrep -e 'regexp' != '' ] -> dont work

Hallo, I need to test a String (a special ip number-string). So I want to run that: ipadress=172.0.0.0 # for debugging: echo $ipadress | egrep -e '172\.?\.??\.??$' # the test that doesnt work if test -z `echo $ipadress | egrep -e '172\.?\.??\.??$'` != "" then echo "match" else... (1 Reply)
Discussion started by: wiseguy
1 Replies

6. UNIX for Dummies Questions & Answers

search ")" with egrep - egrep: syntax error

Hi Guys, we have a shell script which basically query the Database which retrieves huge data and use the data with "egrep" . Now there is some data which contains characters like "abc)" and the same is used like below : "egrep (.+\|GDPRAB16\|GDPR/11702 96 abc)\|$ temp.txt" now while... (7 Replies)
Discussion started by: sagarjani
7 Replies

7. UNIX for Dummies Questions & Answers

Egrep cheat sheet anywhere? Looking for meaning of egrep -c

Hi I've been searching google and have not found what egrep -c means. Does anyone know where I can get a cheat sheet or what that -c means? thanks, Linda (2 Replies)
Discussion started by: leelm
2 Replies

8. UNIX for Dummies Questions & Answers

Script doesn't work, but commands inside work

Howdie everyone... I have a shell script RemoveFiles.sh Inside this file, it only has two commands as below: rm -f ../../reportToday/temp/* rm -f ../../report/* My problem is that when i execute this script, nothing happened. Files remained unremoved. I don't see any error message as it... (2 Replies)
Discussion started by: cheongww
2 Replies

9. UNIX for Dummies Questions & Answers

help with egrep

I have a file called alert.log containing the following: WARNING: received KRVX_OPER_CANNOT_SUPPORT knlldmm: gdbnm=CROOP knlldmm: objn=23793 knlldmm: objv=1 knlldmm: scn=5189816456 knllgobjinfo: MISSING Streams multi-version data dictionary!!! knlldmm: gdbnm=FDROP knlldmm: objn=49385... (9 Replies)
Discussion started by: akDBA
9 Replies

10. UNIX for Dummies Questions & Answers

egrep -f

Hi, i am using egrep -f. The file with the expressions is very big and if i make the file a lot smaller, it works fine. Only if i use the original file, witch has about 20.000 lines it doesn't seem to work. Is the file to big, or do i need more patience?? my command is: egrep -f... (2 Replies)
Discussion started by: tine
2 Replies
Login or Register to Ask a Question