make

Michael Havens bmike1 at gmail.com
Mon Aug 25 16:51:38 MST 2014


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> 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>> 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>> 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>>> 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>>>
>>
>>             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.__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>
>>                  <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>
>>
>>
>>
>>
>>             --
>>             James McPhee
>>             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>
>>             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
>>
>>
> ---------------------------------------------------
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.phxlinux.org/pipermail/plug-discuss/attachments/20140825/9efd9d7c/attachment.html>


More information about the PLUG-discuss mailing list