Need Multiline sed help!!


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Need Multiline sed help!!
# 1  
Old 02-03-2013
Need Multiline sed help!!

Hey everyone, I'm new to sed and I need to create a script for inserting one line of code at the beginning of every method in a Xcode project (over 6,000 methods). Each method Structure is
(+ or -) (Various declarations-- could span multiple lines) ({)

I've tried for days, any guidance would be greatly appreciated!!Smilie

BEFORE:
Code:
- (void)savingErrorDidOccured:(NSError *)error
{
   [SVProgressHUD dismiss]; {
   [Utility displayAlertWithMessage:[error localizedDescription] andTitle:NSLocalizedString(@"Error", @"")];}
}


Code:
- (void)didReceiveMemoryWarning
    SOMETHING SOMETHING :Something Something
    SOMETHING SOMETHING :Something Something {
   [super didReceiveMemoryWarning];
}

AFTER:
Code:
- (void)savingErrorDidOccured:(NSError *)error
{ 
   NEW CODE
   [SVProgressHUD dismiss]; {
   [Utility displayAlertWithMessage:[error localizedDescription] andTitle:NSLocalizedString(@"Error", @"")];}
}


Code:
- (void)didReceiveMemoryWarning
    SOMETHING SOMETHING :Something Something
    SOMETHING SOMETHING :Something Something {
   NEW CODE
  [super didReceiveMemoryWarning];
}

*** This needs to be run on Mac OS X as a script during the Xcode project build Smilie***
Moderator's Comments:
Mod Comment edit by bakunin: On several places we ask to "use CODE tags". Which part of this was so hard to understand? Please view this code tag video for how to use code tags when posting code and data.

Last edited by bakunin; 02-04-2013 at 06:50 PM..
# 2  
Old 02-03-2013
How about an awk program:
Code:
awk '/\{/{f=1;}f==1&&/^\[/{p=$0;$0="NEW CODE\n"p;f=0;}1' filename

# 3  
Old 02-04-2013
As I'm not sure if the opening square bracket that bipinajith's proposal relys on will always be present, I've come up with:
Code:
awk  '/^\-|^\+/ {intro=1}                          # test for introductory  "-" or "+", remember it
      1                                            # always print actual line
      intro && /\{/ {print "NEW CODE"; intro=0;}   # if intro remembered, and if opening brace found, add new code, and forget intro
     ' file

 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed multiline problem

I'm trying to replicate the sed output on p.108 of Sed&Awk,by Doughery & Robbins, 2nd edition. I'm on a Windows 10 Surface Pro, running Cygwin for 64-bit versions of Windows. Input text saved in text file called data_p108.txt: Consult Section 3.1 in the Owner and Operator Guide for a... (9 Replies)
Discussion started by: prooney
9 Replies

2. Shell Programming and Scripting

[sed]: Substitute a string with a multiline value

Dear all, I try to replace a string of characters in a file (MyFile.txt) by a multiline value of the variable "Myvar": $ cat MyFile.txt DESCRIPTION '@TargetTable SCHEMA' ( @InputFlowDef ); $ The content of Myvar: $ echo "$Myvar" col1 , col2 , col3 $ (4 Replies)
Discussion started by: dae
4 Replies

3. Shell Programming and Scripting

Multiline sed

Hi guys, I am fairly comfortable with using the sed command if the string to be replaced is all on a single line. I was wondering is it possible to use sed command in a multiline way ? Say for example I have the below string on 2 different lines: { "key": "brandNameA", ... (3 Replies)
Discussion started by: Junaid Subhani
3 Replies

4. Shell Programming and Scripting

sed - delete content inside tags multiline

I need that a certain part of the content below excluded ==Image Gallery== followed by <gallery> and the content until </gallery> test SED1 ==Image Gallery== <gallery> Image:car1.jpg| Car 1<sup>1</sup> Imagem: car2.jpg| Car2<sup>2</sup> </gallery> test SED2 ==Image... (5 Replies)
Discussion started by: dperboni
5 Replies

5. Shell Programming and Scripting

Using sed to pattern match within a particular multiline block and take action

Hi all, This is my first post, so please go easy if I broke some rules. Not accustomed to posting in forums... :) I'm looking for help on pattern matching within a multiline block and looking to highlight blocks/block-ids that do NOT contain a particular pattern. For example an input file... (5 Replies)
Discussion started by: tirodad
5 Replies

6. UNIX for Dummies Questions & Answers

sed multiline pattern match

How can I write a script that takes a cisco config file and outputs every occurrence of two, or more, pattern matches through the whole config file? For example, out of a config file, i want to print out every line with interface, description and ip address through the whole file, and disregard... (3 Replies)
Discussion started by: knownasthatguy
3 Replies

7. Shell Programming and Scripting

sed multiline substitution if a condition holds

Hi. I have the following text file (more precisely a Matlab script): dummy1 = 5; varx = 'false'; dummy2 = 6; % ... some general commands % ... dummy3 = 7; vary = 'option1'; dummy4 = 8; Using sed I want to do the following action: IF varx = 'false' vary='NEW_VALUE_1'... (11 Replies)
Discussion started by: plsrn
11 Replies

8. Shell Programming and Scripting

Multiline pattern search using sed or awk

Hi friends, Could you please help me to resolve the below issue. Input file :- <Node> <username>abc</username> <password>ABC</password> <Node> <Node> <username>xyz</username> <password>XYZ</password> <Node> <Node> <username>mnp</username> ... (3 Replies)
Discussion started by: haiksuresh
3 Replies

9. Shell Programming and Scripting

delete multiline string from file using sed.

Hi, I have file which has the following content... GOOD MORNING **********WARNING********** when it kicks from the kickstart, sshd daemon should start at last. (WHEN KICKING ITSELF, NOT AFTER KICKING). /etc/rc3.d/S55sshd ( run level specification for sshd is 55, now I would want to... (4 Replies)
Discussion started by: skmdu
4 Replies
Login or Register to Ask a Question