make

Michael Havens bmike1 at gmail.com
Mon Aug 25 12:56:08 MST 2014


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> wrote:

> you guys are so helpful! Thanks.
>
> :-)~MIKE~(-:
>
>
> On Sun, Aug 24, 2014 at 7:40 PM, Jon Kettenhofen <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>> 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>> 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>
>>>
>>>             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
>>>     <mailto:PLUG-discuss at lists.phxlinux.org>
>>>
>>>     To subscribe, unsubscribe, or to change your mail settings:
>>>     http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>>>
>>>
>>>
>>>
>>> --
>>> James McPhee
>>> jmcphe at gmail.com <mailto:jmcphe at gmail.com>
>>>
>>>
>>>
>>> ---------------------------------------------------
>>> 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/27cbacb4/attachment.html>


More information about the PLUG-discuss mailing list