How to parameterize multiple search patterns and generate a new file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to parameterize multiple search patterns and generate a new file
# 1  
Old 07-29-2003
How to parameterize multiple search patterns and generate a new file

I have one file:

123*100*abcd*10
123*101*abcd*-29*def
123*100*abcd*-10
123*102*abcd*-105*asd

I would like to parameterize the search patterns in the following way so that the user could dynamically change the search pattern.

*100* and *- (ie *minus)
*102* and *-

The output that is required is the following into a new file:

123*100*abcd*-10
123*102*abcd*-105*asd

What would be the best way to do it (including scripting). Thanks.
# 2  
Old 07-29-2003
Please clarify your problem:
  • Are you looking for substrings anywhere in the line?
  • Are you always looking for the first substring in the second asterisk-delimited field?
Understanding your problem makes finding a solution a lot easier.
# 3  
Old 07-29-2003
Hi,

I shall explain this problem a little further. I want to search for one pattern (like "*100*" and if it is there check for "*-" on the same line; if both the conditions are satisfied, put that line onto a new file. I want to see if the substrings (or patterns) can be put into a file which can be maintained (like "*100*" & "*-"; "*101*" & "*-" ) based on which the search could be done on a file and another one created.

The advantage of finding a solution to this is the following:

I can avoid running a second report program in my database which would save 15 minutes of processing time. Another report is already creating a large ASCII file and I do not want to duplicate the report process, if I can obtain another file based on multiple substring searches on each line.
# 4  
Old 07-29-2003
Just use grep:
grep "\*100.*\*-" < inputfile > outputfile
# 5  
Old 07-29-2003
Thanks Perderabo. Just two clarifications.


One:

Since we have given

grep "\*100.*\*-" < test > test2

the output file could also contain lines like these:

123*1000*ade*-15
123*100.00*abc*-10
123*100*ade*-20
123*100.*ade*-15

How will I restrict it to only "*100*". i.e., only the third line from above should be returned as it contains an exact string of "*100*" and "*-" ?

Two:

Is it possible to parameterize these patterns("*100*" and "*-" and so on) into a file that could be used in the search?
# 6  
Old 07-29-2003
One:
grep "\*100\*.*\*-" < inputfile > outputfile

Two:
You can put this in a script if you want. But it's just a one line command.

And you should stop thinking of this as two patterns. Think of it as an asterisk, "100", another asterisk, a variable number of characters, still another asterisk, and a minus sign. That is a single pattern.
# 7  
Old 07-30-2003
Thank you very much Perderabo. I was able to automate the report process.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Search Multiple patterns and display

Hi, I have scenario like below and need to search for multiple patterns Eg: Test Time Started= secs Time Ended = secc Green test Test Time Started= secs Time Ended = secc Green test Output: I need to display the text starting with Test and starting with Time... (2 Replies)
Discussion started by: weknowd
2 Replies

2. Shell Programming and Scripting

Search and replace multiple patterns in a particular column only - efficient script

Hi Bigshots, I have a pattern file with two columns. I have another data file. If column 1 in the pattern file appears as the 4th column in the data file, I need to replace it (4th column of data file) with column 2 of the pattern file. If the pattern is found in any other column, it should not... (6 Replies)
Discussion started by: ss112233
6 Replies

3. Shell Programming and Scripting

Search patterns in multiple logs parallelly.

Hi All, I am starting a service which will redirect its out put into 2 logs say A and B. Now for succesful startup of the service i need to search pattern1 in log A and pattern2 in log B which are writen continuosly. Now my requirement is to find the patterns in the increasing logs A and B... (19 Replies)
Discussion started by: Girish19
19 Replies

4. Shell Programming and Scripting

How to search multiple patterns and remove lines from a file?

Hi, I have a file content as below. Table : PAYR Displayed fields: 15 of 15 Fixed columns: 4 List width 0999... (4 Replies)
Discussion started by: shirdi
4 Replies

5. Shell Programming and Scripting

How to search Multiple patterns in unix

Hi, I tried to search multiple pattern using awk trans=1234 reason=LN MISMATCH rec=`awk '/$trans/ && /'"$reason"'/' file` whenevr i tried to run on command promt it is executing but when i tried to implment same logic in shell script,it is failing i.e $rec is empty ... (6 Replies)
Discussion started by: ns64110
6 Replies

6. Shell Programming and Scripting

awk: Multiple search patterns & print in an one liner

I would like to print result of multiple search pattern invoked from an one liner. The code looks like this but won't work gawk -F '{{if ($0 ~ /pattern1/) pat1=$1 && if ($0 ~ /pattern2/) pat2=$2} ; print pat1, pat2}' Can anybody help getting the right code? (10 Replies)
Discussion started by: sdf
10 Replies

7. Shell Programming and Scripting

search multiple patterns

I have two lists in a file that look like a b b a e f c d f e d c I would like a final list a b c d e f I've tried multiple grep and awk but can't get it to work (8 Replies)
Discussion started by: godzilla07
8 Replies

8. Shell Programming and Scripting

Search multiple patterns in multiple files

Hi, I have to write one script that has to search a list of numbers in certain zipped files. For eg. one file file1.txt contains the numbers. File1.txt contains 5,00,000 numbers and I have to search each number in zipped files(The number of zipped files are around 1000 each file is 5 MB) I have... (10 Replies)
Discussion started by: vsachan
10 Replies

9. Shell Programming and Scripting

Perl - How to search a text file with multiple patterns?

Good day, great gurus, I'm new to Perl, and programming in general. I'm trying to retrieve a column of data from my text file which spans a non-specific number of lines. So I did a regexp that will pick out the columns. However,my pattern would vary. I tried using a foreach loop unsuccessfully.... (2 Replies)
Discussion started by: Sp3ck
2 Replies

10. Shell Programming and Scripting

Perl: Match a line with multiple search patterns

Hi I'm not very good with the serach patterns and I'd need a sample how to find a line that has multiple patterns. Say I want to find a line that has "abd", "123" and "QWERTY" and there can be any characters or numbers between the serach patterns, I have a file that has thousands of lines and... (10 Replies)
Discussion started by: Juha
10 Replies
Login or Register to Ask a Question