Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Dynamically accept search pattern and display lines based on it Post 302776849 by nsuresh316 on Thursday 7th of March 2013 03:51:23 AM
Old 03-07-2013
Dynamically accept search pattern and display lines based on it

I have a output file which contains n number of document.Each document has n number of segments and identified using below points

The starting segment is ISA and Ending segment is IEA
Each document has unique number and it will be passed in REF*D9 segment

Each line in sample file is called segment and each segment is group of field delimited with (*)

Since i cant paste the entire contents i have attached the sample file.

Refer the sample file for exact file structure.

If i need to display particular segment from large sample file
Code:
For eg N3 segment which is under NM1*85 segments for following documents alone

12000000010
12000000011
12000000012
12000000013
12000000014
12000000015
12000000016
12000000017

I used the following commands

Code:
1.awk 'a-->0;/NM1\*85/{a=1}/REF\*D9/' file > file1
2.nawk '{s=s?s"\t"$0:$0}/REF/{print s;s=""}' file1|sed -n '/12000000010/,/12000000017/p'

if i need N4 segment which is under NM1*85 segment for same set of documents then i use
Code:
3.awk 'a-->0;/NM1\*85/{a=2}/REF\*D9/' file|egrep -v "N3" > file2
4.nawk '{s=s?s"\t"$0:$0}/REF/{print s;s=""}' file2|sed -n '/12000000010/,/12000000017/p'

so for each and every segment i need to type the command again and store the output in seperate file

Code:
So I need something user interactive

i.e it should prompt 
for search pattern and no of lines to be displayed after that pattern as i mentioned in 1st command
for segment to be omitted as i mentioned in 3rd command(egrep)
and also for start and end document no. as i mentioned in 4rd command(sed)
all these validation need to be done in tmp file or something
and as soon i provided start and end document no it should display the output

I am novice to unix i got this idea if anybody can come up with better logic that will handle my requirement
it would be appreciable

Code:
OS - SunOS viper 5.9 Generic_117171-07 sun4u sparc SUNW,Sun-Fire-480R
Shell - csh

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Search file for pattern and grab some lines before pattern

I want to search a file for a string and then if the string is found I need the line that the string is on - but also the previous two lines from the file (that the pattern will not be found in) This is on solaris Can you help? (2 Replies)
Discussion started by: frustrated1
2 Replies

2. Shell Programming and Scripting

Pattern matching in file and then display 10 lines above every time

hiii, i have to write a shell script like this---- i have a huge log file name abc.log .i have to search for a pattern name "pattern",it may occur 1000 times in the log file,every time it finds the pattern it should display the 10 lines above the pattern. I appericiate your help. (30 Replies)
Discussion started by: namishtiwari
30 Replies

3. Shell Programming and Scripting

Print a pattern between the xml tags based on a search pattern

Hi all, I am trying to extract the values ( text between the xml tags) based on the Order Number. here is the sample input <?xml version="1.0" encoding="UTF-8"?> <NJCustomer> <Header> <MessageIdentifier>Y504173382</MessageIdentifier> ... (13 Replies)
Discussion started by: oky
13 Replies

4. Shell Programming and Scripting

Search and replace - pattern-based

Hey folks! I am new to shell-scripting, but I have a problem that I would like to solve using a script. I create very large html forms, used for randomized trials. In these forms, each question is supplied with a variable that looks something like this: PROJECT_formNN Where NN is the question... (1 Reply)
Discussion started by: Roevhat
1 Replies

5. Shell Programming and Scripting

Extracting few lines from a file based on identifiers dynamically

i have something like this in a file called mysqldump.sql -- -- Table structure for table `Table11` -- DROP TABLE IF EXISTS `Table11`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `Table11` ( `id` int(11) NOT NULL... (14 Replies)
Discussion started by: vivek d r
14 Replies

6. Shell Programming and Scripting

Need one liner to search pattern and print everything expect 6 lines from where pattern match made

i need to search for a pattern from a big file and print everything expect the next 6 lines from where the pattern match was made. (8 Replies)
Discussion started by: chidori
8 Replies

7. UNIX for Dummies Questions & Answers

Updating value based on search pattern

I have a file with following data <Field FieldName="CHCFA21_01_01" FieldType="Text"> <Output CapturedValue=""> <DataSource Name="" Value="" /> </Output> </Field> <Field FieldName="CHCFA21_01_02" FieldType="Date"> <Output CapturedValue=""> ... (1 Reply)
Discussion started by: nsuresh316
1 Replies

8. Shell Programming and Scripting

Display 2 lines before and after a particular pattern

Hi team, Is it possible to display 2 lines after a particular pattern in a shell script. For example in a file which has the below contents. Mummy Daddy Son Daughter Children Aunty Uncle Grandma Grandpa Son Father Mother Brother-in-law I want to display 2 lines before and after... (1 Reply)
Discussion started by: balamv
1 Replies

9. Shell Programming and Scripting

Search pattern on logfile and search for day/dates and skip duplicate lines if any

Hi, I've written a script to search for an Oracle ORA- error on a log file, print that line and the .trc file associated with it as well as the dateline of when I assumed the error occured. In most it is the first dateline previous to the error. Unfortunately, this is not a fool proof script.... (2 Replies)
Discussion started by: newbie_01
2 Replies

10. Shell Programming and Scripting

Grep pattern and display all lines below

Hi I need to grep for a patter and display all lines below the pattern. For ex: say my file has the below lines file1 file2 file3 file4 file5 I NEED to grep for patter file3 and display all lines below the pattern. do we have an option to get this data. Let me know if you require... (5 Replies)
Discussion started by: venkidhadha
5 Replies
All times are GMT -4. The time now is 07:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy