using sed to conditionally extract stanzas of a file based on a search string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting using sed to conditionally extract stanzas of a file based on a search string
# 1  
Old 11-25-2008
using sed to conditionally extract stanzas of a file based on a search string

Dear All,
I have a file with the syntax below (composed of several <log ..... </log> stanzas)
I need to search this file for a number e.g. 2348022225919, and if it is found in a stanza, copy the whole stanza/section (<log .... </log>) to another output file.

The numbers to search for are listed in an input file (easy enough to read that file in one line at a time), but I am having major problems trying to build a conditional instruction using sed to search the file (below) for a particular number and then copy its whole section if a match is found. Thanks.

<log logid="847b00c2190810312356170828/1/1/1">
<category>ProcEngineBL.Normal</category>
<operation>Get</operation>
<target>GsmFlex.Connection</target>
<instance>msisdn=2348022225919</instance>
<user>tester1</user>
<context>sog.Pro/context>
<status>SUCCESSFUL</status>
</log>
<log logid="827b00c43190810312356170828/1/2/1">
<category>ProcEngineBL.Normal</category>
<operation>Set</operation>
<target>GsmFlex.Connection</target>
<instance>msisdn=234802225919</instance>
<user>onwer1</user>
<context>sog.Pro/context>
<status>SUCCESSFUL</status>
</log>
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to search and replace string in column in file with command sed?

how to search and replace string in column in file with command sed or other search "INC0000003.in" and replace column 4 = "W" $ cat file.txt INC0000001.in|20150120|Y|N|N INC0000002.in|20150120|Y|N|N INC0000003.in|20150120|Y|N|N INC0000004.in|20150120|Y|N|Noutput... (4 Replies)
Discussion started by: ppmanja3
4 Replies

2. UNIX for Dummies Questions & Answers

Obtaining File information based on String Search

Is there a single Command in Unix to get the following Information when searching for files containing one or more strings in a Unix Directory (including sub directories within it) : 1) Complete filename ( path and filename) 2) Owner of the file 3) Size of the file 4) Last Modified date... (3 Replies)
Discussion started by: pchegoor
3 Replies

3. Shell Programming and Scripting

Search for string in a file, extract two another strings and concatenate to a variable

I have a file with <suit:run date="Trump Tue 06/19/2012 11:41 AM EDT" machine="garg-ln" build="19921" level="beta" release="6.1.5" os="Linux"> Need to find word "build" then extract build number, which is 19921 also release number, which is 6.1.5 then concatenate them to one variable as... (6 Replies)
Discussion started by: garg
6 Replies

4. Shell Programming and Scripting

sed or awk command to replace a string pattern with another string based on position of this string

here is what i want to achieve... consider a file contains below contents. the file size is large about 60mb cat dump.sql INSERT INTO `table1` (`id`, `action`, `date`, `descrip`, `lastModified`) VALUES (1,'Change','2011-05-05 00:00:00','Account Updated','2012-02-10... (10 Replies)
Discussion started by: vivek d r
10 Replies

5. Shell Programming and Scripting

bash script to find date based on search string for continuesly updating file

Hi All, I am very new to UNIX and I have tried this for a longtime now and unable to crack it.... There is a file that is continuously updating. I need to search for the string and find the date @ which it updated every day..... eg: String is "work started" The log entry is as below: ... (1 Reply)
Discussion started by: Nithz
1 Replies

6. Shell Programming and Scripting

Use grep sed or awk to extract string from log file and put into CSV

I'd like to copy strings from a log file and put them into a CSV. The strings could be on different line numbers, depending on size of log. Example Log File: File = foo.bat Date = 11/11/11 User = Foo Bar Size = 1024 ... CSV should look like: "foo.bat","11/11/11","Foo Bar","1024" (7 Replies)
Discussion started by: chipperuga
7 Replies

7. Shell Programming and Scripting

Extract string from multiple file based on line count number

Hi, I search all forum, but I can not find solutions of my problem :( I have multiple files (5000 files), inside there is this data : FILE 1: 1195.921 -898.995 0.750312E-02-0.497526E-02 0.195382E-05 0.609417E-05 -2021.287 1305.479-0.819754E-02 0.107572E-01 0.313018E-05 0.885066E-05 ... (15 Replies)
Discussion started by: guns
15 Replies

8. Shell Programming and Scripting

Extracting data between tags based on search string from unix file

Input file is on Linux box and the input file has data in just one line with 1699741696 characters. Sample Input: <xxx><document coll="uspatfull" version="0"><CMSdoc>xxxantivirus</CMSdoc><tag1>1</tag1></document><document coll="uspatfull"... (5 Replies)
Discussion started by: gaya
5 Replies

9. Shell Programming and Scripting

Search for string in a file and extract another string to a variable

Hi, guys. I have one question: I need to search for a string in a file, and then extract another string from the file and assign it to a variable. For example: the contents of the file (group) is below: ... ftp:x:23: mail:x:34 ... testing:x:2001 sales:x:2002 development:x:2003 ...... (6 Replies)
Discussion started by: daikeyang
6 Replies

10. Shell Programming and Scripting

appending string to text file based on search string

Hi, I need to append string "Hi" to the beginning of the lines containing some specific string. How can I achieve that? Please help. Malay (1 Reply)
Discussion started by: malaymaru
1 Replies
Login or Register to Ask a Question
Mason::Manual::Intro(3pm)				User Contributed Perl Documentation				 Mason::Manual::Intro(3pm)

NAME
Mason::Manual::Intro - Getting started with Mason DESCRIPTION
A few quick examples to get your feet wet with Mason. See Mason::Manual::Setup for how to use Mason to generate web sites. EXAMPLE 1 Hello world (from command-line) After installing Mason, you should have a "mason" command in your installation path (e.g. "/usr/local/bin"). Try this: % mason Hello! The local time is <% scalar(localtime) %>. ^D (where '^D' means ctrl-D or EOF). You should see something like Hello! The local time is Wed Mar 2 17:11:54 2011. The "mason" command reads in a Mason component (template), runs it, and prints the result to standard output. Notice that the tag <% scalar(localtime) %> was replaced with the value of its expression. This is called a substitution tag and is a central piece of Mason syntax. EXAMPLE 2 Email generator (from script) The command line is good for trying quick things, but eventually you're going to want to put your Mason components in files. In a test directory, create a directory "comps" and create a file "email.mc" with the following: <%class> has 'amount'; has 'name'; </%class> Dear <% $.name %>, We are pleased to inform you that you have won $<% sprintf("%.2f", $.amount) %>! Sincerely, The Lottery Commission <%init> die "amount must be a positive value!" unless $.amount > 0; </%init> In addition to the substitution tag we've seen before, we declare two attributes, "amount" and "name", to be passed into the component; and we declare a piece of initialization code to validate the amount. In the same test directory, create a script "test.pl" with the following: 1 #!/usr/local/bin/perl 2 use Mason; 3 my $interp = Mason->new(comp_root => 'comps', data_dir => 'data'); 4 print $interp->run('/email', name => 'Joe', amount => '1500')->output; Line 3 creates a Mason interpreter, the main Mason object. It specifies two parameters: a component root, indicating the directory hierarchy where your components will live; and a data directory, which Mason will use for internal purposes such as class generation and caching. Line 4 runs the template - notice that the ".mc" extension is added automatically - passing values for the "name" and "amount" attributes. Run "test.pl", and you should see Dear Joe, We are pleased to inform you that you have won $1500.00! Sincerely, The Lottery Commission SEE ALSO
Mason::Manual::Tutorial, Mason::Manual AUTHOR
Jonathan Swartz <swartz@pobox.com> COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Jonathan Swartz. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.14.2 2012-05-02 Mason::Manual::Intro(3pm)