Sponsored Content
Top Forums Shell Programming and Scripting Copy data to new file based on input pattern Post 303005617 by RavinderSingh13 on Friday 20th of October 2017 07:42:14 AM
Old 10-20-2017
Hello grvk101,

Welcome to forums, hope you will enjoy learning and sharing knowledge here. Please use code tags for sample Input_file and expected output too.
Please try following and let me know if this helps you.
Code:
awk '!/ORDER\|Header\|Add\|32\|32\|161[68]/ && !/ORDER\|Details/ && !/ORDER\|T/{flag=""} /ORDER\|Header\|Add\|32|\32\|161[68]/{flag=1} flag'   Input_file

Output will be as follows.
Code:
ORDER|Header|Add|32|32|1616
ORDER|Details1.........
ORDER|Details2.........
ORDER|Details3.........
ORDER|Details4.........
ORDER|T|32|32|1616
ORDER|Header|Add|32|32|1618
ORDER|Details1.........
ORDER|Details2.........
ORDER|Details3.........
ORDER|Details4.........
ORDER|T|32|32|1618
ORDER|Header|Add|32|32|1619
ORDER|Details1.........
ORDER|Details2.........
ORDER|Details3.........
ORDER|Details4.........
ORDER|T|32|32|1619

EDIT: Adding a non-one liner form of solution too here.
Code:
awk '
!/ORDER\|Header\|Add\|32\|32\|161[68]/ && !/ORDER\|Details/ && !/ORDER\|T/{
  flag=""
}
/ORDER\|Header\|Add\|32|\32\|161[68]/{
  flag=1
}
flag
'   Input_file

Thanks,
R. Singh
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Truncating FILE data BASED ON A PATTERN

HI I HAVE A PROBLEM,MY SOURCE FILE IS OF PATTERN S1,E-Certified,29,29,2.7,Certified,4,3,2.7,,0,0,0 S2,Certified,4,3,2.7,,0,0,0,,0 S3,E-Certified,29,29,2.7,,0,0,0 S4,,0,0,0,,0,0,0,,0,0,0,,0,0,0 AND THE EXPECTED OUTPUT IS S1,E-Certified,29,29,2.7 S1,Certified,4,3,2.7... (1 Reply)
Discussion started by: pkumar3
1 Replies

2. Shell Programming and Scripting

Need script to take input from file, match on it in file 2 and input data

All, I am trying to figure out a script to run in windows that will allow me to match on First column in file1 to 8th Column in File2 then Insert file1 column2 to file2 column4 then create a new file. File1: 12345 Sam 12346 Bob 12347 Bill File2:... (1 Reply)
Discussion started by: darkoth
1 Replies

3. Shell Programming and Scripting

Copy input file based on condition

Hi, I am new to unix shell programming. I want to write a shell script for a functionality existing in mainframe system. I have one file as below as input 123456 &__987 &12yuq abcdef _ referes to blank condition:whenever the input file is having &__ ,it should be replaced... (4 Replies)
Discussion started by: charan0703
4 Replies

4. Shell Programming and Scripting

Merge two file data together based on specific pattern match

My input: File_1: 2000_t g1110.b1 abb.1 2001_t g1111.b1 abb.2 abb.2 g1112.b1 abb.3 2002_t . . File_2: 2000_t Ali england 135 abb.1 Zoe british 150 2001_t Ali england 305 g1111.b1 Lucy russia 126 (6 Replies)
Discussion started by: patrick87
6 Replies

5. Shell Programming and Scripting

Split a file into multiple files based on the input pattern

I have a file with lines something like. ...... 123_start ...... ....... 123_end .... ..... 456_start ...... ..... 456_end .... ..... 789_start .... .... 789_end (6 Replies)
Discussion started by: abinash
6 Replies

6. Shell Programming and Scripting

how to get data from hex file using SED or AWK based on pattern sign

I have a binary (hex) file I need to parse to get some data which are encoded this way: .* b4 . . . 01 12 .* af .* 83 L1 x1 x2 xL 84 L2 y1 y2 yL By another words there is a stream of hexadecimal bytes (in my example separated by space for better readability). I need to get value stored in... (3 Replies)
Discussion started by: sameucho
3 Replies

7. Shell Programming and Scripting

Generate tabular data based on a column value from an existing data file

Hi, I have a data file with : 01/28/2012,1,1,98995 01/28/2012,1,2,7195 01/29/2012,1,1,98995 01/29/2012,1,2,7195 01/30/2012,1,1,98896 01/30/2012,1,2,7083 01/31/2012,1,1,98896 01/31/2012,1,2,7083 02/01/2012,1,1,98896 02/01/2012,1,2,7083 02/02/2012,1,1,98899 02/02/2012,1,2,7083 I... (1 Reply)
Discussion started by: himanish
1 Replies

8. Shell Programming and Scripting

Splitting textfile based on pattern and name new file after pattern

Hi there, I am pretty new to those things, so I couldn't figure out how to solve this, and if it is actually that easy. just found that awk could help:(. so i have a textfile with strings and numbers (originally copy pasted from word, therefore some empty cells) in the following structure: SC... (9 Replies)
Discussion started by: luja
9 Replies

9. Shell Programming and Scripting

Insert data based on pattern

if it is finding some data based on pattern 'test' then insert else if has no data based on the pattern 'test' then exit successfully cat file | grep test > file2 (3 Replies)
Discussion started by: jagu
3 Replies

10. Shell Programming and Scripting

In PErl script: need to read the data one file and generate multiple files based on the data

We have the data looks like below in a log file. I want to generat files based on the string between two hash(#) symbol like below Source: #ext1#test1.tale2 drop #ext1#test11.tale21 drop #ext1#test123.tale21 drop #ext2#test1.tale21 drop #ext2#test12.tale21 drop #ext3#test11.tale21 drop... (5 Replies)
Discussion started by: Sanjeev G
5 Replies
MakeMethods::Utility::TextBuilder(3pm)			User Contributed Perl Documentation		    MakeMethods::Utility::TextBuilder(3pm)

NAME
Class::MakeMethods::Utility::TextBuilder - Basic text substitutions SYNOPSIS
print text_builder( $base_text, @exprs ) DESCRIPTION
This module provides a single function, which implements a simple "text macro" mechanism for assembling templated text strings. $expanded_text = text_builder( $base_text, @exprs ) Returns a modified copy of $base_text using rules from the @exprs list. The @exprs list may contain any of the following: o A string, in which any '*' characters will be replaced by the base text. The interpolated string then replaces the base text. o A code-ref, which will be called with the base text as its only argument. The result of that call then replaces the base text. o A hash-ref, which will be added to the substitution hash used in the second pass, below. o An array-ref, containing additional expressions to be treated as above. After any initial string and code-ref rules have been applied, the hash of substitution rules are applied. The text will be searched for occurances of the keys of the substitution hash, which will be modified based on the corresponding value in the hash. If the substitution key ends with '{}', the search will also match a balanced block of braces, and that value will also be used in the substitution. The hash-ref may contain the following types of rules: o 'string' => 'string' Occurances of the first string are to be replaced by the second. o 'string' => code_ref Occurances of the string are to be replaced by the results of calling the subroutine with no arguments. o 'string{}' => 'string' Occurances of the first string and subsequent block of braces are replaced by a copy of the second string in which any '*' characters have first been replaced by the contents of the brace block. o 'string{}' => code_ref Occurances of the string and subsequent block of braces are replaced by the results of calling the subroutine with the contents of the brace block as its only argument. o 'string{}' => hash_ref Occurances of the string and subsequent block of braces are replaced by using the contents of the brace block as a key into the provided hash-ref. EXAMPLE
The following text and modification rules provides a skeleton for a collection letter: my $letter = "You owe us AMOUNT. Please pay up! " . "THREAT{SEVERITY}"; my @exprs = ( "Dear NAMEm *", "* -- The Management", { 'THREAT{}' => { 'good'=>'Please?', 'bad'=>'Or else!' } }, " DATE *", { 'DATE' => 'Tuesday, April 1, 2001' }, ); One might invoke this template by providing additional data for a given instance and calling the text_builder function: my $item = { 'NAME'=>'John', 'AMOUNT'=>'200 camels', 'SEVERITY'=>'bad' }; print text_builder( $letter, @exprs, $item ); The resulting output is shown below: Tuesday, April 1, 2001 Dear John, You owe us 200 camels. Please pay up! Or else! -- The Management SEE ALSO
See Class::MakeMethods for general information about this distribution. perl v5.10.1 2004-09-06 MakeMethods::Utility::TextBuilder(3pm)
All times are GMT -4. The time now is 07:28 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy