Berkeley CSUA MOTD:Entry 36496
Berkeley CSUA MOTD
 
WIKI | FAQ | Tech FAQ
http://csua.com/feed/
2025/05/24 [General] UID:1000 Activity:popular
5/24    

2005/3/2-3 [Computer/SW/Unix] UID:36496 Activity:high
3/2     Is there a way to do "grep p1 file | grep p2" with one grep without
        piping? ie, "grep p1&&p2 file"? Thx.
        \_ use egrep?  man egrep.  Look for egrep -e
           \_ Can I write an alias where I can say "mygrep p1 p2 p3 ... file",
              where I can specify variable number of patterns, with the last
              one being the filename?
              \_ egrep -e '(p1|p2|p3)' filename
                 not sure about the exact syntax
                 \_ are you sure about that? the original poster wants the
                    conjunction rather than the disjunction of several patterns
                    (i.e. all of them, not "any one of"). i don't see how
                    any grep options including those you listed would allow
                    that in a single grep. -alexf
                    \_ you are right, alexf.  I think you can use some
                       regular expression do an AND.
        \_ Can you use sed rather than grep?
           $ sed -n -e '/[pat1]/h' -e '/[pat2]/h' ... -e '/[patN]/p' [file]
           I'm not sure this will work w/ all versions of sed.
        \_ In gnu grep at least you can do:
           egrep -x '.*(p1.*p2|p2.*p1).*' file
           ..though this is tedious and doesn't work for overlapping patterns.
           I usually just pipe grep to grep.  --dbushong
2025/05/24 [General] UID:1000 Activity:popular
5/24    

You may also be interested in these entries...
2011/10/26-12/6 [Computer/SW/Unix] UID:54202 Activity:nil
10/24  What's an easy way to see if say column 3 of a file matches a list of
       expressions in a file? Basically I want to combine "grep -f <file>"
       to store the patterns and awk's $3 ~ /(AAA|BBB|CCC)/ ... I realize
       I can do this with "egrep -f " and use regexp instead of strings, but
       was wondering if there was some magic way to do this.
       \_ UNIX has no magic. Make a shell script to produce the ask or egrep
	...
2011/3/12-4/20 [Consumer/CellPhone, Computer/HW/Laptop] UID:54057 Activity:nil
3/12    I am curious what others think of tablets like iPad. They don't seem
        useful to me, but I use my computer for more than web browsing,
        Facebook, and Twitter. Why would I buy one instead of a laptop?
        They seem like a disabled laptop to me, but at a higher price.
        \_ You are most likely a coder.  iPad is not for coders.  They are
           what you get your non-technical friends.  Or musicians.  Look at
	...
2011/2/6-19 [Computer/Networking] UID:54028 Activity:nil
2/5     hmm.
$netstat -at | grep LISTEN
tcp        0      0 *:43300                 *:*                     LISTEN
        \_ this is an sshd
tcp        0      0 *:49416                 *:*                     LISTEN
tcp        0      0 *:36201                 *:*                     LISTEN
	...
2009/1/25-29 [Computer/SW/Unix] UID:52456 Activity:low
1/23    may the awesome rootstaff please apt-get install:
        colorgcc, colordiff, colormake
        thanks!
        \_ Done.  In the future email such requests to root@csua for
           faster response
           \_ totally, understood.  Altho yeah I do like asking for
	...
2008/10/14-20 [Computer/SW/Languages/Misc, Computer/SW/Languages/Web] UID:51527 Activity:nil
10/14   2 apache 2.0.52 servers running on Linux boxes.  Identical httpd.conf
        files (except for ServerName).  But on one, if a CGI script takes
        longer than 300 seconds, it times out.  The other, not.  Why is that?
        \_ Perhaps network equipment configuration. Or try comparing settings
           in /proc/sys/net.
           \_ I ran /sbin/sysctl -a | grep tcp, all settings are the same.
	...
2008/9/3 [Computer/SW/Unix] UID:51030 Activity:nil
9/3     Okay, my sed and awk skills are obviously not up to par here.
        I want to only see the "500's" in my apache error log, how do I
        do that? I want to see the whole line, not just the 500 error code.
        Never mind, grep " 500 " is close enough.
	...
2008/7/14-16 [Computer/SW/Languages/Perl, Computer/SW/Unix] UID:50557 Activity:moderate
7/14    Shell Programming question: I want to call a script with 1 arg
        and have it figure out whether $1 is a MAC address or an IP address
        and then do call the appropriate function.  What is the best way
        to do this, given that sh/bash/ksh do not have something like
        the =~ in perl.  Check for exit status of grep, or is there a
        a better way?  For the moment, let's just say the two tests are:
	...
2007/9/4-6 [Computer/Rants] UID:47882 Activity:moderate
9/4     Happy Labor Day! Thank you, Labor, for weekends, mandatory breaks,
        and a generally un-serf-like workplace.
        \_ There are a few books coming out about how horrible the
           New Deal was for America.  I love it.
           New Deal was for America.
           \_ There are also books out about how much the Jews control
	...
2007/8/18 [Computer/SW/Unix] UID:47649 Activity:nil
8/17    How to I grep to exclude all lines with more than 1 / ?
        \_ After reading the grep man page:
           grep -v -E '/[^/]*/' myFile
	...
2007/6/12-14 [Computer/SW/Unix] UID:46925 Activity:high
6/12    Inside of a C++ program, I do a "ps | grep usename" for logging
        purposes.  where username = getenv("USER");  Doing this directly is a
        gigantic security hole because someone could set $USER to some command
        line and execute arbitrary code.  What's the best way to make this
        safe?  Is there some standard way to check the input in a case like
        this?
	...