Sponsored Content
Top Forums Shell Programming and Scripting Regex negative look and bash script Post 302996585 by Corona688 on Thursday 27th of April 2017 02:38:06 PM
Old 04-27-2017
Use code tags for code please.

Why not two regexes?
Code:
if [[ CONDITION1 ]] && ! [[ CONDITION2 ]]

Presumably that kill -9 is killing tail. Don't bother. Just break out of the loop. This will close the pipe and implicitly kill tail with SIGPIPE, because pipes are designed to clean up after themselves like that. Much simpler.

Code:
tail -f regex.log | while read LOGLINE
        do
        if [[ $LOGLINE =~ .*INF\ -\ Status.*success.* ]] && ! [[ $LOGLINE =~ .*success.* ]]
        then
                date "+%d.%B.%Y %H:%M:%S"
                echo "$LOGLINE"
                break
        fi
done

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

printf in bash shell not printing negative values

hi i am using printf in a script and it is not printing negative values..i have to use printf to get rid of the newline..here is my code: fin=`echo $a - $b | bc` printf "${fin}," >> test these statements are in a loop. here is what i get when i try to subtract 4 from 8: ./scr1: line... (2 Replies)
Discussion started by: npatwardhan
2 Replies

2. Shell Programming and Scripting

Bash regex

Hello everybody, I'm clearly not an expert in bash scripting as I've written maybe less than 10 scripts in my life. I'm trying to strip an xml string removing every tag in it. I'm using bash substitution to do so, but apparently I missed something about what is a regex for bash ... As an... (4 Replies)
Discussion started by: kerloi
4 Replies

3. Shell Programming and Scripting

[BASH] Allow name with spaces (regex)

Hey all, I have a very simple regular expression that I use when I want to allow only letters with spaces. (I know this regex has a lot of shortcomings, but I'm still trying to learn them) isAlpha='^*$'However, when I bring this over to BASH it doesn't allow me to enter spaces. I use the... (3 Replies)
Discussion started by: whyte_rhyno
3 Replies

4. Shell Programming and Scripting

Bash regex help

I've been using the following regex below in a bash script on RHEL 5.5 using version GNU bash, version 3.2.25(1)-release I've tried using the script on RHEL 6.3 which uses GNU bash, version 4.1.2(1)-release I assume there's been alot of changes to bash since that's quite a jump in revisions.... (12 Replies)
Discussion started by: woodson2
12 Replies

5. UNIX for Dummies Questions & Answers

Need help with Regex for bash

Hi, I am trying to match this word: hexagon-bx.mydomain.com with regex. I have tried this: "\.*]*$" So far I have not been successful. I also need to make sure that the regex will match words that just have lowercase letters and numbers in them, such as camera01. How can I create such an... (5 Replies)
Discussion started by: newbie2010
5 Replies

6. Shell Programming and Scripting

Is it possible to Divide a negative number in bash script

I am using a small script to divide some numbers in a given file and display the output in another file. I am getting the following error basename: invalid option -- '5' Try `basename --help' for more information. (standard_in) 1: syntax error The script is : #!/bin/bash for i in `cat... (4 Replies)
Discussion started by: kmnr877
4 Replies

7. Shell Programming and Scripting

Bash script to send lines of file to new file based on Regex

I have a file that looks like this: cat includes CORP-CRASHTEST-BU e:\crashplan\ CORP-TEST /usr/openv/java /usr/openv/logs /usr/openv/man CORP-LABS_TEST /usr/openv/java /usr/openv/logs /usr/openv/man What I want to do is make three new files with just those selections. So the three... (4 Replies)
Discussion started by: newbie2010
4 Replies

8. UNIX for Dummies Questions & Answers

Regex for (a|b) in bash

I am trying to find files using the following by using simple bash script: if -2014 ]]; then echo "yes";fi What I need to find are any files with date 08-**-2014 so August 2014 any files. I can use if -2014 ]]; then echo "yes";fi That works fine. How do I get files beginning with 08... (1 Reply)
Discussion started by: newbie2010
1 Replies

9. Shell Programming and Scripting

Sendmail K command regex: adding exclusion/negative lookahead to regex -a@MATCH

I'm trying to get some exclusions into our sendmail regular expression for the K command. The following configuration & regex works: LOCAL_CONFIG # Kcheckaddress regex -a@MATCH +<@+?\.++?\.(us|info|to|br|bid|cn|ru) LOCAL_RULESETS SLocal_check_mail # check address against various regex... (0 Replies)
Discussion started by: RobbieTheK
0 Replies

10. UNIX for Beginners Questions & Answers

Pass RegEx to java program in bash script

I can't seem to get this right. I've tried it every way imaginable using every trick I see on stackexchange and such. No luck. So nothing major here, something like: #!/bin/bash SEARCH="ARG1 ARG2 '((^EXACT$)|(.*InTheMiddle*)|(^AtBeginning*))'" java -cp /my/class/path MyClassName $SEARCH... (3 Replies)
Discussion started by: stonkers
3 Replies
tail(1) 						      General Commands Manual							   tail(1)

NAME
tail - Writes a file to standard output, beginning at a specified point SYNOPSIS
tail [-f | -r] [-c number | -n number] [file] tail [+number | -number] [unit] [-f | -r] [file] The tail command writes the named file (standard input by default) to standard output, beginning at a point you specify. The second synopsis form of this command is obsolete, and support may be withdrawn at any time. STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: tail: XCU5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. OPTIONS
Displays the remainder of the file from the starting point number where number is measured in bytes. The sign of number affects the loca- tion in the file at which to begin the copying: Copying begins relative to the beginning of the file. Copying begins relative to the end of the file. Copying begins relative to the end of the file. The origin for counting is 1, that is, -c +1 represents the first byte of the file, -c -1 the last. Does not end after it copies the last line of the input file if the input file is not read from a pipe, but enters an endless loop in which it sleeps for a sec- ond and then attempts to read and copy further records from the input file. Thus, it can be used to monitor the growth of a file being written by another process. Has no effect if specified with -r. Displays remainder of file from the starting point number where number is measured in lines. The sign of number affects the location in the file, measured in lines, to begin the copying: Copying begins relative to the beginning of the file. Copying begins relative to the end of the file. Copying begins relative to the end of the file. The origin for counting is 1, that is, -n +1 represents the first line of the file, -n -1 the last. [Tru64 UNIX] Causes tail to print lines from the end of the file in reverse order. The default for -r is to print the entire file this way. Overrides -f. Begins reading number lines (l), 512-byte blocks (b), kilobyte blocks (k), characters (c and m) from the end of the input. The m argument counts mulktibyte characters as single-byte characters, while c counts characters byte-by-byte but does not break mulk- tibyte characters. The default unit is l for lines. The default number is 10 for all units. Begins reading number lines (l), 512-byte blocks (b), 1-kilobyte blocks (k), or characters (c and m) from the beginning of the input. The m argument counts mulktibyte characters as sin- gle-byte characters, while c counts characters byte-by-byte but does not break mulktibyte characters. The default unit is l for lines. The default number is 10 for all units. In the non-obsolescent form, if you do not specify either -c or n, -n 10 is the default. DESCRIPTION
If you do not specify -f, -r, -number, or +number, tail begins reading 10 lines before the end of the file. The default starting point is - (end of input), l (lines) is the default unit, and 10 is the default number. By specifying +, you can direct tail to read from the beginning of the file. By specifying a number or a unit, or both, you can change the point at which tail begins reading. [Tru64 UNIX] The unit argument can specify lines, blocks, or characters. The tail command can begin reading number (10 by default) units from either the end or the beginning of the file. [Tru64 UNIX] The block size is either 512 bytes or 1 kilobyte. NOTES
When the input is a text file containing mulktibyte characters, use the -c option cautiously since the output produced may not start on a character boundary. EXIT STATUS
The following exit values are returned: Successful completion. An error occurred. EXAMPLES
To display the last 10 lines of a file named notes, enter: tail notes To specify how far from the end to start, enter: tail -20 notes This displays the last 20 lines of notes. To specify how far from the beginning to start, enter: tail +200c notes | more This displays notes a page at a time, starting with the 200th character from the beginning. To follow the growth of a file named accounts, enter: tail -1 -f accounts This displays the last line of accounts. Once every second, tail displays any lines that have been added to the file. This contin- ues until stopped by pressing the Interrupt key sequence. ENVIRONMENT VARIABLES
The following environment variables affect the execution of tail: Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization vari- ables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to mulktibyte characters in arguments and input files). Determines the locale for the format and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of LC_MESSAGES. SEE ALSO
Commands: cat(1), head(1), more(1), page(1), pg(1) Standards: standards(5) tail(1)
All times are GMT -4. The time now is 09:31 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy