04-28-2008
Two approaches....
1. Search for any of the words on each line and every time you find one, add it to a hash... e.g. $somehash{"Renaldo"} = 1;
When you've finished scanning the whole file, check the resulting hash for the existence of all the words....
if (exists $somehash{"Renaldo"} && exists $somehash{"loosers"} && exists ... ) { send email ... }
Something like that....
OR....
You could try a pattern like
$FILEBUFFER =~ /(A|B|C|D).+(A|B|C|D).+(A|B|C|D).... /is
You simply repeat the alternatives over and over again separated by one or more of any character, and that way you catch all of them if present no matter what the order.... You have to test the resulting capture to see if all words are present... Note the "is" at the end of the pattern... "i" causes case to be ignored, and "s" says to count a newline as one of the "any characters" which lets you match across lines... Note that in this case $FILEBUFFER contains the WHOLE file (see READ()), not a line....
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi!
I'm new here and glad to meet everyone!
I've been wrestling with a problem lately however! How do I recursively (recursive means to keep going through the subdirectories until no more are there) search a bunch of textfiles in a long directory structure for a specific string.. but only... (1 Reply)
Discussion started by: skwadim
1 Replies
2. Shell Programming and Scripting
Hi All,
I need to search for a string in a file that I've opened and base a decision on the result. The logic is this:
"if the word 'Shared' appears on the first line then
do this on the whole file
else
do this on the whole file
"
The code I currently have isn't working:... (4 Replies)
Discussion started by: pondlife
4 Replies
3. Shell Programming and Scripting
Hi,
Need to extract a string from one file and search the same in other files.
Ex:
I have file1 of hundred lines with no delimiters not even space.
I have 3 more files.
I should get 1 to 10 characters say substring from each line of file1 and search that string in rest of the files and get... (1 Reply)
Discussion started by: mohancrr
1 Replies
4. Shell Programming and Scripting
Hi,
I'm very new to UNIX scripting and find quite difficult to understand simple UNIX syntax. Really appreciat if somebody could help me to give simple codes for my below problems:-
1) I need to search for a string "TTOH 8031950001" in a files which filename will be "*host*'. For example, the... (3 Replies)
Discussion started by: cuji
3 Replies
5. Shell Programming and Scripting
hello, i'm a novice on bsh scripting so thanks for any help here
basically i have a shell var $x that looks like this
> echo $x
nabc1234:!:73394:17155:Gary Mason:/home/garym:/bin/ksh
and i'm trying to keep the first 8 characters and the text from the 4th : to the 5th :
i've been trying... (9 Replies)
Discussion started by: sasglm
9 Replies
6. Shell Programming and Scripting
Hi Forum.
Is there a quick way to do the following search/replace within a block of data? I tried to google the solution but didn't really know what to look for.
I have the following text file (I want to search for a particular string "s_m_f_acct_txn_daily_a1" and replace the... (5 Replies)
Discussion started by: pchang
5 Replies
7. Shell Programming and Scripting
without using conventional file searching commands like find etc, is it possible to locate a file if i just know that the file that i'm searching for contains a particular text like "Hello world" or something? (5 Replies)
Discussion started by: arindamlive
5 Replies
8. Shell Programming and Scripting
Hi
I would like to read a file using perl and search for a string (last entry). Then read that into an array and do further grep
File content for ex:
comp=a,value=30,runtime=12,type=lic
comp=d,value=15,runtime=2,type=lic
comp=a,value=90,runtime=43,type=lic... (1 Reply)
Discussion started by: vivek_damodaran
1 Replies
9. Shell Programming and Scripting
Hi all,
i have a generated report in unix in the following command like
input.txt
47.85,10
0124,42.35,8
0125,3.5,2
the input file format is fixed
I need the my output file with append text as below
output.txt
0124 amount:42.35
0125 amount:3.5
0124 count : 8
0125... (34 Replies)
Discussion started by: hemanthsaikumar
34 Replies
10. Shell Programming and Scripting
I have two files
1. input.txt
2. keyword.txt
input.txt has contents like
.src_ref 0 "call.s" 24 first
0x000000 0x5a80 0x0060 BRA.l 0x60
.src_ref 0 "call.s" 30 first
0x000002 0x1bc5 RETI
.src_ref 0 "call.s" 31 first
0x000003 0x6840 ... (2 Replies)
Discussion started by: acdc
2 Replies
MATCH(1L) Schily's USER COMMANDS MATCH(1L)
NAME
match - searches for patterns in files
SYNOPSIS
match [ -option ] pattern [ file ... ]
DESCRIPTION
Match searches the named files or standard input (if no filenames are given) for the occurrences of the given pattern on each line. The
program accepts literal characters or special pattern matching characters. All lines that match the pattern are output on standard output.
You can only specify one pattern string for each match, however, you can construct an arbitrarily complex string. When you do not specify
a file, match can be used as a filter to display desired lines. Standard in is used if no files are specified.
OPTIONS
-not, -v
Prints all lines that do not match.
-i Ignore the case of letters
-m Force not to use the magic mode
-w Search for pattern as a word
-x Display only those lines which match exactly
-c Display matching count for each file
-l Display name of each file which matches
-s Be silent indicate match in exit code
-h Do not display filenames
-n Precede matching lines with line number (with respect to the input file)
-b Precede matching lines with block number
REGULAR EXPRESSIONS
The following is a table of all the pattern matching characters:
c An ordinary character (not one of the special characters discussed below) is a one character regular expression that matches that
character.
c A backslash () followed by any special character is a one character regular expression that matches the special character itself.
The special characters are:
! # % * { } [ ] ? ^ $
! Logical OR as in match this!that!the_other. You may have to use `{}' for precedence grouping.
# A hash mark followed by any regular expression matches any number (including zero) occurrences of the regular expression.
? Matches exactly any one character. W? matches Wa, Wb, Wc, W1, W2, W3 ...
* Matches any number of any character.
% Matches exactly nothing. It can be used in groups of ored patterns to specify that an empty alternative is possible.
{} Curly brackets may be used to enclose patterns to specify a precedence grouping, and may be nested. {%!{test}}version matches the
strings testversion and version.
[string]
A non empty string of characters enclosed in square brackets is a one character regular expression that matches any one character in
that string. If however the first character of the string is a circumflex (^), the one character expression matches any character
which is not in the string. The ^ has this special meaning only if it occurs first in the string. The minus (-) may be used to indi-
cate a range of consecutive ASCII characters; for example, [0-9] is equivalent to any one of the digits. The - loses it's special
meaning if it occurs first (after an initial ^, if any) or last in the string. The right square bracket (]) and the backslash ()
must be quoted with a backslash if you want to use it within the string.
^ Matches the beginning of a line.
$ Matches the end of a line. (^*$ matches any entire line)
EXAMPLES
FILES
None.
SEE ALSO
grep(1), fgrep(1), egrep(1)
DIAGNOSTICS
NOTES
Even if a match occurs more than once per line, the line is output only once.
Quote special pattern matching characters to prevent them from being expanded by the Command Interpreter.
BUGS
The length of the pattern is currently limited to 100 characters.
This limit is reduced by 38 if the -w option is used.
Joerg Schilling 15. Juli 1988 MATCH(1L)