make

Jon Kettenhofen subs at kexsof.com
Mon Aug 25 19:02:14 MST 2014


it may come from

    find . . . | grep <some file name>

which is easier to remember than the method for incorporating the grep 
verb in a find command.

On 08/25/2014 07:51 PM, Michael Havens wrote:
> I get it!
>
>     cat x | grep y
>
> is redundant. did I learn that when it wasn't redundant? if it never has
> been redundant I wonder why I thought the pipe was needed?
>
> :-)~MIKE~(-:
>
>
> On Mon, Aug 25, 2014 at 4:25 PM, Brian Cluff <brian at snaptek.com
> <mailto:brian at snaptek.com>> wrote:
>
>     You'll need to add some single quotes to keep the shell from
>     interpreting your regex as shell code like this:
>
>     grep -E 'error|fail' {make,install,check}.fail
>
>     Without the single quotes you are telling the system to cat from
>     your set of files and look for lines with the word error and pipe
>     that to a program called fail.
>
>     I found that I did have to add the -E even thought the man page says
>     that in the GNU version of grep the basic and extended regular
>     expressions are the same... it appears that is not the case in practice.
>
>     Brian Cluff
>
>
>     On 08/25/2014 12:56 PM, Michael Havens wrote:
>
>         I have 3 files, make.fail, install.fail, and check.fail. I want
>         to check
>         for two words in those files: error and fail.
>
>         would this work?
>
>         cat {make,install,check}.fail | grep -i error|fail
>
>         I was told to put the 'E' option in to grep. Looking at the man
>         page it
>         seems that the E option is only useful if I were greping for
>         something
>         that begins with a '{'. AM I misreading the man page?
>
>         man quote:
>                  GNU grep -E attempts to support traditional usage by
>         assuming
>         that { is
>                  not   special  if  it  would  be  the  start  of  an
>         invalid
>         interval
>                  specification.  For example, the command grep -E '{1'
>         searches
>         for  the
>                  two-character  string  {1  instead  of  reporting a
>         syntax error
>         in the
>                  regular expression.  POSIX allows this behavior as  an
>         extension,  but
>                  portable scripts should avoid it.
>
>
>
>         :-)~MIKE~(-:
>
>
>         On Mon, Aug 25, 2014 at 12:24 PM, Michael Havens
>         <bmike1 at gmail.com <mailto:bmike1 at gmail.com>
>         <mailto:bmike1 at gmail.com <mailto:bmike1 at gmail.com>>> wrote:
>
>              you guys are so helpful! Thanks.
>
>              :-)~MIKE~(-:
>
>
>              On Sun, Aug 24, 2014 at 7:40 PM, Jon Kettenhofen
>         <subs at kexsof.com <mailto:subs at kexsof.com>
>              <mailto:subs at kexsof.com <mailto:subs at kexsof.com>>> wrote:
>
>                  I like visible proofs, so here's a test I ran:
>                  (terminal output was as is shown)
>
>                  [jon at localhost ~]$ rm temp
>                  [jon at localhost ~]$ echo >>temp
>                  [jon at localhost ~]$ echo $?
>                  0
>                  [jon at localhost ~]$ cat temp
>
>                  [jon at localhost ~]$ echo >>temp 2>&1
>                  [jon at localhost ~]$ echo $?
>                  0
>                  [jon at localhost ~]$ cat temp
>
>
>                  [jon at localhost ~]$
>
>                  as you can see, no errors and the single ">" did not
>         erase the
>                  file when used in this manner.  So Mike's script should
>         work as
>                  intended
>                  at least if there is no stderr output.
>
>                  but suppose there was an error? (apologizing for the
>         length of ...)
>
>                  [jon at localhost ~]$ echo "echo" >test
>                  [jon at localhost ~]$ echo "ls temp2" >>test
>                  [jon at localhost ~]$ # test ls of non-existent file
>                  [jon at localhost ~]$ ls temp2
>                  ls: cannot access temp2: No such file or directory
>                  [jon at localhost ~]$ echo $?
>                  2
>                  [jon at localhost ~]$ # see, we get both an error and
>         stderr message
>                  [jon at localhost ~]$ # so
>                  [jon at localhost ~]$ mv test test.sh
>                  [jon at localhost ~]$ chgmod +x test.sh
>                  bash: chgmod: command not found...
>                  [jon at localhost ~]$ chmod +x test.sh
>                  [jon at localhost ~]$ # i'm not perfect!
>                  [jon at localhost ~]$ rm temp
>                  [jon at localhost ~]$ ./test.sh >>temp
>                  ls: cannot access temp2: No such file or directory
>                  [jon at localhost ~]$ echo $?
>                  2
>                  [jon at localhost ~]$ cat temp
>
>                  [jon at localhost ~]$ ./test.sh >>temp 2>&1
>                  [jon at localhost ~]$ echo $?
>                  2
>                  [jon at localhost ~]$ cat temp
>
>
>                  ls: cannot access temp2: No such file or directory
>                  [jon at localhost ~]$
>
>                  as you can see, Mike's script will work as he
>         apparently intended,
>                  providing he's using a modern version of bash.
>
>
>
>                  On 08/24/2014 09:56 PM, James Mcphee wrote:
>
>                      you've said make, append stdout (default file
>         descriptor 1)
>                      to file
>                      make.fail, assign stderr (default filedescriptor 2)
>         the same
>                      filedescriptor as stdout.  So...  If the intent was
>         to have
>                      both stderr
>                      and stdout append make.fail, then it is correct.
>
>
>                      On Sun, Aug 24, 2014 at 6:06 PM, Michael Havens
>                      <bmike1 at gmail.com <mailto:bmike1 at gmail.com>
>         <mailto:bmike1 at gmail.com <mailto:bmike1 at gmail.com>>
>                      <mailto:bmike1 at gmail.com <mailto:bmike1 at gmail.com>
>         <mailto:bmike1 at gmail.com <mailto:bmike1 at gmail.com>>>> wrote:
>
>                           what I really need to know is will this:
>
>                               make>>make.fail 2>&1
>
>                           send stderr and stdout to the file 'make.fail'
>         or did I
>                      write it
>                           incorrectly?
>
>                           :-)~MIKE~(-:
>
>
>                           On Sun, Aug 24, 2014 at 2:56 PM, Brian Cluff
>                      <brian at snaptek.com <mailto:brian at snaptek.com>
>         <mailto:brian at snaptek.com <mailto:brian at snaptek.com>>
>                           <mailto:brian at snaptek.com
>         <mailto:brian at snaptek.com> <mailto:brian at snaptek.com
>         <mailto:brian at snaptek.com>>>>
>
>                      wrote:
>
>                               the > will delete any file that it points
>         at even
>                      if the command
>                               doesn't actually output anything.  It will
>         even
>                      delete the file
>                               is the command doesn't exist like if you
>         type grep
>                      as gerp
>                                >file, file will still be
>         created/overwritten.
>
>                               If you want to make sure that your command
>         doesn't
>                      overwrite any
>                               existing files you have to set the
>         noclobber option
>                      like:
>                               $ set -o noclobber
>
>                               A good trick to know:
>                               You can use the > to delete the contents
>         of a file
>                      without
>                               having to delete and recreate the file by
>         simply
>                      doing this:
>                               $ >yourfile
>
>                               Brian Cluff
>
>
>                               On 08/24/2014 02:36 PM, Michael Havens wrote:
>
>                                   I have a question about redirections:
>
>                                        make>>make.fail 2>&1
>
>                                   tells it make and then to send (>)
>         stderr (2)
>                      to stdout (1)
>                                   and also to
>                                   send stdout that way also (&1).
>         finally all of
>                      that gets
>                                   sent to a file
>                                   named make.fail (>>). Isn't '>>' actually
>                      'append' whereas
>                                   '>' would
>                                   work just as well so long as the file
>         didn't
>                      already exist?
>                                   If the file
>                                   did exist would I get an error or
>         would the
>                      file be overwritten?
>                                   :-)~MIKE~(-:
>
>
>
>
>         ------------------------------______---------------------
>                                   PLUG-discuss mailing list -
>                                   PLUG-discuss at lists.phxlinux.______org
>                                   <mailto:PLUG-discuss at lists.
>         <mailto:PLUG-discuss at lists.>__p__hxlinux.org <http://phxlinux.org>
>
>                      <mailto:PLUG-discuss at lists.__phxlinux.org
>         <mailto:PLUG-discuss at lists.phxlinux.org>>>
>
>                                   To subscribe, unsubscribe, or to
>         change your
>                      mail settings:
>         http://lists.phxlinux.org/______mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/____mailman/listinfo/plug-discuss>
>
>         <http://lists.phxlinux.org/____mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/__mailman/listinfo/plug-discuss>>
>
>
>         <http://lists.phxlinux.org/____mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/__mailman/listinfo/plug-discuss>
>
>         <http://lists.phxlinux.org/__mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/mailman/listinfo/plug-discuss>>__>
>
>
>           ------------------------------______---------------------
>                               PLUG-discuss mailing list -
>                      PLUG-discuss at lists.phxlinux.______org
>                               <mailto:PLUG-discuss at lists.
>         <mailto:PLUG-discuss at lists.>__p__hxlinux.org <http://phxlinux.org>
>
>                      <mailto:PLUG-discuss at lists.__phxlinux.org
>         <mailto:PLUG-discuss at lists.phxlinux.org>>>
>
>                               To subscribe, unsubscribe, or to change
>         your mail
>                      settings:
>         http://lists.phxlinux.org/______mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/____mailman/listinfo/plug-discuss>
>
>         <http://lists.phxlinux.org/____mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/__mailman/listinfo/plug-discuss>>
>
>
>
>
>         <http://lists.phxlinux.org/____mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/__mailman/listinfo/plug-discuss>
>
>         <http://lists.phxlinux.org/__mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/mailman/listinfo/plug-discuss>>__>
>
>
>
>
>           ------------------------------____---------------------
>                           PLUG-discuss mailing list -
>                      PLUG-discuss at lists.phxlinux.____org
>                      <mailto:PLUG-discuss at lists.__phxlinux.org
>         <mailto:PLUG-discuss at lists.phxlinux.org>>
>                           <mailto:PLUG-discuss at lists.
>         <mailto:PLUG-discuss at lists.>__p__hxlinux.org <http://phxlinux.org>
>
>                      <mailto:PLUG-discuss at lists.__phxlinux.org
>         <mailto:PLUG-discuss at lists.phxlinux.org>>>
>
>                           To subscribe, unsubscribe, or to change your
>         mail settings:
>         http://lists.phxlinux.org/____mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/__mailman/listinfo/plug-discuss>
>
>         <http://lists.phxlinux.org/__mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/mailman/listinfo/plug-discuss>>
>
>
>
>
>                      --
>                      James McPhee
>         jmcphe at gmail.com <mailto:jmcphe at gmail.com>
>         <mailto:jmcphe at gmail.com <mailto:jmcphe at gmail.com>>
>                      <mailto:jmcphe at gmail.com <mailto:jmcphe at gmail.com>
>         <mailto:jmcphe at gmail.com <mailto:jmcphe at gmail.com>>>
>
>
>
>
>                      ------------------------------____---------------------
>                      PLUG-discuss mailing list -
>                      PLUG-discuss at lists.phxlinux.____org
>                      <mailto:PLUG-discuss at lists.__phxlinux.org
>         <mailto:PLUG-discuss at lists.phxlinux.org>>
>                      To subscribe, unsubscribe, or to change your mail
>         settings:
>         http://lists.phxlinux.org/____mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/__mailman/listinfo/plug-discuss>
>
>         <http://lists.phxlinux.org/__mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/mailman/listinfo/plug-discuss>>
>
>
>                  ------------------------------____---------------------
>                  PLUG-discuss mailing list -
>         PLUG-discuss at lists.phxlinux.____org
>                  <mailto:PLUG-discuss at lists.__phxlinux.org
>         <mailto:PLUG-discuss at lists.phxlinux.org>>
>                  To subscribe, unsubscribe, or to change your mail settings:
>         http://lists.phxlinux.org/____mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/__mailman/listinfo/plug-discuss>
>
>         <http://lists.phxlinux.org/__mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/mailman/listinfo/plug-discuss>>
>
>
>
>
>
>         ------------------------------__---------------------
>         PLUG-discuss mailing list - PLUG-discuss at lists.phxlinux.__org
>         <mailto:PLUG-discuss at lists.phxlinux.org>
>         To subscribe, unsubscribe, or to change your mail settings:
>         http://lists.phxlinux.org/__mailman/listinfo/plug-discuss
>         <http://lists.phxlinux.org/mailman/listinfo/plug-discuss>
>
>
>     ------------------------------__---------------------
>     PLUG-discuss mailing list - PLUG-discuss at lists.phxlinux.__org
>     <mailto:PLUG-discuss at lists.phxlinux.org>
>     To subscribe, unsubscribe, or to change your mail settings:
>     http://lists.phxlinux.org/__mailman/listinfo/plug-discuss
>     <http://lists.phxlinux.org/mailman/listinfo/plug-discuss>
>
>
>
>
> ---------------------------------------------------
> PLUG-discuss mailing list - PLUG-discuss at lists.phxlinux.org
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>



More information about the PLUG-discuss mailing list