Sponsored Content
Top Forums Programming Conditional replace after reading in a file Post 302602431 by naveen@ on Monday 27th of February 2012 10:46:46 AM
Old 02-27-2012
Conditional replace after reading in a file

I need to read the contents of a file. Then I need to grep for a keyword and replace part of the grepped line based on the condition of previous and present line.


Example input file:
Code:
  V { 
    port1       = P;
    port2       = 0;
    shift_port  = P0; /* if next shift_port is P0 I need to replace this with M0; and next shift_port's P0; with 00;
    port3       = 0;
    reset       = 1;
   }
  W wf_cyc;
  V { 
    port1       = P;
    port2       = 0;
    shift_port  = P0;
    port3       = 0;
    reset       = 1;
   }
  Macro "Inputs" { 
    test_ip =
        110111010110
  }

  W wf_cyc;
  V { 
    port1       = P;
    port2       = 0;
    shift_port  = 00;
    port3       = 0;
    reset       = 1;
  }
  W wf_cyc;
  V { 
    port1       = P;
    port2       = 0;
    shift_port  = 00; 
    port3       = 0;
    reset       = 1;
   }
  W wf_cyc;
  V { 
    port1       = P;
    port2       = 0;
    shift_port  = P0;/* if next shift_port is P0; I need to replace this with M0; and next shift_port's P0 with 00;
    port3       = 0;
    reset       = 1;
   }
  W wf_cyc;
  V { 
    port1       = P;
    port2       = 0;
    shift_port  = P0;/* if next shift_port is P0; I need to replace this with M0; and next shift_port's P0 with 00;
    port3       = 0;
    reset       = 1;
   }
}

Desired output file
Code:
  V { 
    port1       = P;
    port2       = 0;
    shift_port  = M0; /* if next shift_port is P0; I need to replace this with M0; and next shift_port's P0 with 00;
    port3       = 0;
    reset       = 1;
   }
  W wf_cyc;
  V { 
    port1       = P;
    port2       = 0;
    shift_port  = 00;
    port3       = 0;
    reset       = 1;
   }
  Macro "Inputs" { 
    test_ip =
        110111010110
  }

  W wf_cyc;
  V { 
    port1       = P;
    port2       = 0;
    shift_port  = 00;
    port3       = 0;
    reset       = 1;
  }
  W wf_cyc;
  V { 
    port1       = P;
    port2       = 0;
    shift_port  = 00; 
    port3       = 0;
    reset       = 1;
   }
  W wf_cyc;
  V { 
    port1       = P;
    port2       = 0;
    shift_port  = M0;/* if next shift_port is P0; I need to replace this with M0; and next shift_port's P0 with 00;
    port3       = 0;
    reset       = 1;
   }
  W wf_cyc;
  V { 
    port1       = P;
    port2       = 0;
    shift_port  = 00;/* if next shift_port is P0; I need to replace this with M0; and next shift_port's P0 with 00;
    port3       = 0;
    reset       = 1;
   }
}

I am trying to use a perl script to implement this.

Thanks in advance for your help
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed conditional string replace for each line

Hi all, I appreciate the enormous amount of knowledge that flows in this forum. I am an average UNIX user. I have many files with lines like the below. I have separated each line with space for ease of reading. I need to replace the first occurance of "/00" with null on those lines that have... (6 Replies)
Discussion started by: Nanu_Manju
6 Replies

2. Shell Programming and Scripting

awk help to do conditional find and replace

Hi, I have a Line input for awk as follows DROP MATERIALIZED VIEW MCR.COMM_STACK; CREATE MATERIALIZED VIEW "MCR"."COMM_STACK" ON PREBUILT TABLE WITHOUT REDUCED PRECISION USING INDEX REFRESH FAST ON DEMAND START WITH sysdate+0 NEXT SYSDATE + 7 WITH PRIMARY KEY USING DEFAULT... (3 Replies)
Discussion started by: rajan_san
3 Replies

3. Shell Programming and Scripting

Replace a column with a value conditional on a value in col1

Hi, Perhaps a rather simple problem...? I have data that looks like this. BPC0013 ANNUL_49610 0 0 1 1 BPC0014 ANNUL_49642 0 0 2 1 BPC0015 ANNUL_49580 0 0 1 1 BPC0016 ANNUL_49596 0 0 2 1 BPC0017 VULGO_49612 0 0 1 1 BPC0018 ANNUL_49628 0 0 1 1 BPC0019 ANNUL_49692 0 0 2 1 170291_HMG... (4 Replies)
Discussion started by: genehunter
4 Replies

4. Shell Programming and Scripting

Search & Replace in Multiple Files by reading a input file

Hi, I have a folder which contains multiple config.xml files and one input file, Please see the below format. Config Files format looks like :- Code: <application name="SAMPLE-ARCHIVE"> <NVPairs name="Global Variables"> <NameValuePair> ... (0 Replies)
Discussion started by: haiksuresh
0 Replies

5. Shell Programming and Scripting

Sed conditional replace

Given this row: |lastname1|middlename1|firstname1|lastname2|middlename2|firstname2 produce this result: |lastname|middlename|firstname where the resultant names are based on the presence of the #2 names above. I.e., if a #2 name is passed (usually will be null,) use that - otherwise... (8 Replies)
Discussion started by: tiggyboo
8 Replies

6. Shell Programming and Scripting

Conditional Search/Replace

I'm looking for an awk or (preferably) sed solution to search a pipe delimited file for any occurrence of an email address that does not include a designed domain, and replace the email address with a blank. E.g. hello|smith@designateddomain.com|jones@anotherdomain.edu|1234| turns into: ... (2 Replies)
Discussion started by: tiggyboo
2 Replies

7. Shell Programming and Scripting

Search & Replace in Multiple Files by reading a input file

I have a environment property file which contains: Input file: value1 = url1 value2 = url2 value3 = url3 and so on. I need to search all *.xml files under directory for value1 and replace it with url1. Same thing I have to do for all values mentioned in input file. I need script in unix bash... (7 Replies)
Discussion started by: Shamkamde
7 Replies

8. Shell Programming and Scripting

sed conditional \n replace for each line

How could be removed \n only if appearing at position 80 in the line? (4 Replies)
Discussion started by: RomanF
4 Replies

9. Emergency UNIX and Linux Support

sed replace file contents by reading from another file

Hello, My input file1 is like this by tab-delimited chr1 mm10_knownGene stop_codon 3216022 3216024 0.000000 - . gene_id "uc007aeu.1"; transcript_id "uc007aeu.1"; chr1 mm10_knownGene CDS 3216025 3216968 0.000000 - 2 gene_id "uc007aeu.1"; transcript_id "uc007aeu.1"; ... (3 Replies)
Discussion started by: jacobs.smith
3 Replies

10. Shell Programming and Scripting

Replace query by reading the file

Hi Guys, I am having below file which holds data like this file.txt name,id,flag apple,1,Y apple,2,N mango,1,Y mango,2,Y I need to read the above file and frame a query like this hive -s -e "create apple_view as select 1 from main_table;" hive -s -e "create mango_view as select... (11 Replies)
Discussion started by: rohit_shinez
11 Replies
REPLACE(1)						       MySQL Database System							REPLACE(1)

NAME
replace - a string-replacement utility SYNOPSIS
replace arguments DESCRIPTION
The replace utility program changes strings in place in files or on the standard input. Invoke replace in one of the following ways: shell> replace from to [from to] ... -- file_name [file_name] ... shell> replace from to [from to] ... < file_name from represents a string to look for and to represents its replacement. There can be one or more pairs of strings. Use the -- option to indicate where the string-replacement list ends and the file names begin. In this case, any file named on the command line is modified in place, so you may want to make a copy of the original before converting it. replace prints a message indicating which of the input files it actually modifies. If the -- option is not given, replace reads the standard input and writes to the standard output. replace uses a finite state machine to match longer strings first. It can be used to swap strings. For example, the following command swaps a and b in the given files, file1 and file2: shell> replace a b b a -- file1 file2 ... The replace program is used by msql2mysql. See msql2mysql(1). replace supports the following options. o -?, -I Display a help message and exit. o -#debug_options Enable debugging. o -s Silent mode. Print less information what the program does. o -v Verbose mode. Print more information about what the program does. o -V Display version information and exit. COPYRIGHT
Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see http://www.gnu.org/licenses/. SEE ALSO
For more information, please refer to the MySQL Reference Manual, which may already be installed locally and which is also available online at http://dev.mysql.com/doc/. AUTHOR
Sun Microsystems, Inc. (http://www.mysql.com/). MySQL 5.1 04/06/2010 REPLACE(1)
All times are GMT -4. The time now is 02:28 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy