10 More Discussions You Might Find Interesting
1. UNIX for Beginners Questions & Answers
Hi Guys ,
I am having a file as stated below
File 1
sa0 -- i_core/i_core_apb/i_afe0_controller/U261/A
sa0 -- i_core/i_core_apb/i_afe0_controller/U265/Z
sa1 -- i_core/i_core_apb/i_afe0_controller/U265/A
sa1 -- i_core/i_core_apb/i_afe0_controller/U268/Z
sa1 -- ... (7 Replies)
Discussion started by: kshitij
7 Replies
2. Shell Programming and Scripting
BASH in Solaris 10
I have a log file like below. Whenever the pattern ORA-39083 is encountered, I want to delete the line which has this pattern and 3 lines below it.
$ cat someLogfile.txt
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'CMPA' does... (4 Replies)
Discussion started by: kraljic
4 Replies
3. Shell Programming and Scripting
hello everyone,
im new here, and also programming with awk, sed and grep commands on linux.
In my text i have many lines with this config:
1 1 4 3 1 1 2 5
2 2 1 1 1 3 1 2
1 3 1 1 1 2 2 2
5 2 4 1
3 2 1 1 4 1 2 1
1 1 3 2 1 1 5 4
1 3 1 1... (3 Replies)
Discussion started by: satir
3 Replies
4. Shell Programming and Scripting
Hi,
i need help to delete all the lines between 2 matched patterns and the first pattern must be deleted too. sample as follows:
inputfile.txt
>kump_1
...........................
...........................
>start_0124
dgfhghgfh
fgfdgfh
fdgfdh
>kump_2
............................. (7 Replies)
Discussion started by: redse171
7 Replies
5. Shell Programming and Scripting
Hi
Im trying to do the following in sed. I want to delete any blank line at the start of a file until it matches a pattern and then stops. for example:
Input
output:
I have got it to work within a range of two patterns with the following:
sed '/1/,/pattern/{/^]*$/d}'
The... (2 Replies)
Discussion started by: duonut
2 Replies
6. Shell Programming and Scripting
I have this input file that I need to remove lines which represents more than 30 days of processing.
Input file:
On 11/17/2009 at 12:30:00, Program started processing...argc=7
Total number of bytes in file being processed is 390
Message buffer of length=390 was allocated successfully... (1 Reply)
Discussion started by: udelalv
1 Replies
7. Shell Programming and Scripting
First of all, I know this can be more eassily done with perl or other scripting languages but, that's not the issue. I need this in sed. (or wander if it's possible )
I got a file (trace file to recreate the control file from oracle for the dba boys)
which contains
some lines
another line... (11 Replies)
Discussion started by: plelie2
11 Replies
8. Shell Programming and Scripting
Hi there,
I need help about using sed. Iam using sed to delete and print lines that match the port number as listed in sedfile. I am using -d and -p command for delete match port and print them respectively. However, the output is not synchonize where the total deleted lines is not similar with... (3 Replies)
Discussion started by: new_buddy
3 Replies
9. Shell Programming and Scripting
I am really need help with the regular expression in SED. From input file, I need to extract lines that have the port number (sport or dport) as defined. The input file is something like this
time=1209515280-1209515340 dst=192.168.133.202 src=208.70.8.23 bytes=2472 proto=6 sport=80 dport=1447... (6 Replies)
Discussion started by: new_buddy
6 Replies
10. UNIX for Dummies Questions & Answers
On Unix, it is easy to get those lines that match a pattern, by
grep pattern file
or those lines that do not, by
grep -v pattern file
but I am editing a file on Windows with Ultraedit.
Ultraedit support regular expression based search and replace.
I can delete all the lines that match a... (1 Reply)
Discussion started by: JumboGeng
1 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)