10 More Discussions You Might Find Interesting
1. UNIX for Beginners Questions & Answers
Hi All,
i want to write a shell script read below file line by line and want to exclude the lines which contains empty value for MOUNTPOINT field.
i am using centos 7 Operating system.
want to read below file.
# cat /tmp/d5
NAME="/dev/sda" TYPE="disk" SIZE="60G" OWNER="root"... (4 Replies)
Discussion started by: balu1234
4 Replies
2. Shell Programming and Scripting
Hello,
I have below format log file,
Comparing csv_converted_files/2201/9747.1012H67126.5077292103609547345.csv and csv_converted_files/22019/97447.1012H67126.5077292103609547345.csv
Comparing csv_converted_files/2559/9447.1012H67126.5077292103609547345.csv and... (6 Replies)
Discussion started by: arvindshukla81
6 Replies
3. UNIX for Advanced & Expert Users
Hi I want to print the line until pattern is matched.
I am using below code:
sed -n '1,/pattern / p' file
It is working fine for me , but its not working for exact match.
sed -n '1,/^LAC$/ p' file
Input:
LACC FEGHRA 0
LACC FACAF 0
LACC DARA 0
LACC TALAC 0
LAC ILACTC 0... (8 Replies)
Discussion started by: Abhisrajput
8 Replies
4. Shell Programming and Scripting
Hello Friends,
I need to print lines in between two string when a keyword existed in those lines (keywords like exception, error, failed, not started etc).
for example,
input:
..
Begin Edr
ab12
ac13
ad14
bc23
exception occured
bd24
cd34
dd44
ee55
ff66
End Edr (2 Replies)
Discussion started by: EAGL€
2 Replies
5. Shell Programming and Scripting
I have a log file as given below
012/01/21 10:29:02 (111111) Processing Job '23_369468343464564'
2012/01/21 10:29:02 (111111)
Making Job '23_369468343464564.0'...
2012/01/21 10:29:04 (111111)
Jobnumber '23_369468343464564' was successful
2012/01/21 10:29:04 ... (12 Replies)
Discussion started by: rpm120
12 Replies
6. Shell Programming and Scripting
Hello every,
I am stuck in a problem. I have file like this. I want to add the fifth field of the match pattern line above the lines starting with "# @D". The delimiter is "|"
eg
>
# @D0.00016870300|0.05501020000|12876|12934|3||Qp||Pleistocene||"3 Qp Pleistocene"|Q
# @P... (5 Replies)
Discussion started by: jyu3
5 Replies
7. Shell Programming and Scripting
Hi All,
I am stuck for quite sometime now. Below is a line in my file -
GS|ED|001075|001081|20110626|1806|100803|X|004010ST|130|100803001
This line occurs only once and it is the second line.
I have to break this line into two lines from ST (bold) such that it looks like -... (5 Replies)
Discussion started by: ihussain
5 Replies
8. Shell Programming and Scripting
I have the following text format in a file which lists the question first and then 5 choices
after that the explanantion and finally the answer.
1.The amount of time it takes for most of a worker’s occupational knowledge and skills to become
obsolete has been declining because of the... (2 Replies)
Discussion started by: nanchil_guy
2 Replies
9. Shell Programming and Scripting
I am trying to pull certain pieces of data out of a line of a file that matches a certain pattern:
The three pieces that I want to pull out of this line are the only occurrences of that pattern within the line, but the rest of the line is not consistent in each file. Basically the line is... (3 Replies)
Discussion started by: ellhef
3 Replies
10. Shell Programming and Scripting
Hi,
I want to grep the line which has 'data11'.then from that line, i need to trace back and find out the immediate line which has the same timestamp of that grepped line.
for eg:
log file:
-----------
Process - data
Process - datavalue - 2345
Process - data
Process - data
Process... (9 Replies)
Discussion started by: Sharmila_P
9 Replies
match(1) Mail Avenger 0.8.3 match(1)
NAME
match - Match strings against glob paterns
SYNOPSIS
match [-gilrqs] [-n <n>] [-c cmd] [-x code] {[-p] pattern | -f <file>} str1 [str2 ...]
DESCRIPTION
match checks strings against pattern, which should be a shell-like glob pattern. pattern may contain the following special characters:
? A "?" character in pattern matches any single character in the string, except that the "/" character is only matched if match was given
the -s option.
* A "*" character in pattern matches zero or more characters in the string. The exception is that it will only match "/" characters if
match was given the -s option.
[...]
A set of characters between square brackets matches any character in the set. In addition, the "-" character can be used to specify a
range. For example "[+e0-3]" would match any of the characters "+", "e", 0, 1, 2, or 3 in the input string. To include a hyphen ("-")
in the set of characters matched, either include the hyphen first or last, or escape it with a "".
[!...]
A character class preceded by a "!" matches any character but those specified in the class. The exception is that the negated
character class will match a "/" only if match was given the -s option.
c The backslash character escapes the next character c. Thus, to match a literal "*", you would use the pattern "*".
match prints each string that matches pattern, one per line, and exits 0 if one or more strings matched. If no string matches, match exits
with status 67 (or whatever alternate status was specified by the -x flag). If the -n n flag was specified, match prints only the text
that matched the nth occurrence of "*" in the patten.
OPTIONS
-f file
Specifies that the pattern should be read from file. match will read each line of the file and consider it as pattern to match against
the argument strings. For each argument string, match stops when it hits the first matching line of the file. If file does not exist,
match exits 67, or whatever code was specified by -x.
-g Normally, the -n option selects text matching particular "*" characters in the patern. -g changes this behavior to use parentheses for
grouping. Thus, for instance, the text "foo.c" would match pattern "*(.[ch])", and the output with option -n 1 would be ".c". To
include a literal "(" or ")" in the pattern with the -g option, you must precede the character with a "".
-i Makes the match case insensitive. str will be considered to match if any variation on its capitalization would match. For example,
string "G" would match pattern "[f-h]".
-l When a pattern matches the string in more than one way, the -l flag says to assign as much text as possible to the leftmost "*"s in the
pattern. For example, pattern "*+*" would match text "a+b+c", and the first "*" would match "a+b". This behavior is the default, thus
-l's effect is only to undo a previous -r flag.
-n n
With this flag, match prints the text that matched the nth "*" in the pattern, as opposed to printing the whole string. The leftmost
"*" corresponds to -n 1. Specifying -n 0 causes match to print the whole matching string. Specifying -n -1 or using a value greater
than the number of "*"s in the pattern causes match not to print anything, in which case you can still use the exit status to see if
there is a match. The default value for n is 0, unless -g has also been specified, in which case the default is 1.
-c command
When -c is specified, match runs command with the system shell (/bin/sh), giving it as argument $0 the full string that matched, and as
arguments $1, $2, etc., the parts of the string that matched any "*"s in pattern. If the command does not exit with status 0, match
will exit immediately, before processing further matches, with whatever status command returned. The -c and -n flags are mutually
exclusive.
-p pattern
Specifies the pattern to match against. The -p flag is optional; you can specify pattern as the first argument following the options.
However, if you want to try matching the same input string against multiple patterns, then you must specify each pattern with a -p
flag.
-q This option is synonymous with -n -1; it suppresses output when there is a match. You can still determine whether a match occurred by
the exit status.
-r When a pattern matches the string in more than one way, the -r flag says to assign as much text as possible to the rightmost "*"s in
the pattern. For example, with -r, pattern "*+*" would match text "a+b+c" with the "*" matching "a", and the second matching "b+c".
-s Ordinarily, "*", "?", and negated character classes ("[!...]") do not match "/" characters. -s changes this behavior to match slashes.
-x code
By default, when there is no match, match exits with status 67. With this option, match exits with status code, instead.
EXAMPLES
Suppose you have a directory with a bunch of files ending .c and .o. If, for each file named foo.c you want to attempt to delete the file
foo.o, you can run the following command:
match -p '*.c' -c 'rm -f $1.o' *.c
Servers running the mailman list manager often send mail from bounce addresses of the form listname-bounces@host.com. If you subscribe to
multiple lists on the same server, the mailman interface makes it easier if you subscribe under the same address. To split the mail into
multiple folders based on the bounce address in the environment variable SENDER, you might chose a mailbox with the following shell code:
name=`match -n1 "*-bounces@host.com" "$SENDER"`
&& echo "$HOME/Mail/incoming/host-$name.spool"
SEE ALSO
avenger(1), avenger.local(8)
The Mail Avenger home page: <http://www.mailavenger.org/>.
AUTHOR
David Mazieres
Mail Avenger 0.8.3 2012-04-05 match(1)