Find string in file and append new string after


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find string in file and append new string after
# 1  
Old 10-02-2013
Find string in file and append new string after

Hi All,

I'm trying to insert a string into a file at a specific location.

I'd like to add a string after the
Code:
parent::__construct();

in my file.

Code:
<?php  if (! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Controller extends CI_Controller {

	function __construct()
	{
		parent::__construct();
                NEW STRING
	}

I've tried to use the a combination of grep and sed but I don't seem to be having much luck. Any help would be appreciated.

---------- Post updated at 09:09 PM ---------- Previous update was at 09:03 PM ----------

Just a note. I have tried to following with no success

Code:
$(grep -q "parent::__construct();" application/core/MY_Controller.php)
if [ $? -eq 1 ]; then
    sed '/parent::__construct();/ a\ string2' application/core/MY_Controller.php
fi

# 2  
Old 10-02-2013
Code:
sed -e 's/\(parent::__construct();\)/\1\nNEW STRING/'

# 3  
Old 10-02-2013
The following multi-line should work with all sed versions
Code:
sed '
/parent::__construct();/ a\
string2
' application/core/MY_Controller.php

or
Code:
sed '
s/parent::__construct();/&\
string2/
' application/core/MY_Controller.php

Your grep-if is faulty somehow. Perhaps you want
Code:
grep -q "parent::__construct();" application/core/MY_Controller.php
if [ $? -eq 0 ]; then

# 4  
Old 10-03-2013
Using awk and getting text at correct position (tabbed)
Code:
awk -F"\t" '/parent::__construct()/ {$0=$0"\n";for (i=1;i<NF;i++)t=t "\t";$0=$0 t "NEW STRING"}1' application/core/MY_Controller.php
<?php  if (! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Controller extends CI_Controller {

        function __construct()
        {
                parent::__construct();
                NEW STRING
        }

This User Gave Thanks to Jotne For This Post:
# 5  
Old 10-03-2013
Thanks @Jotne. I guess now all I have to do is make a temp file and move that back over the original. Also thanks to @MadeInGermany & @Smiling Dragon
# 6  
Old 10-03-2013
Code:
sed 's/\(parent::__construct();\)/&<patern want to add>/g' <file>


Last edited by Scott; 10-03-2013 at 04:49 AM.. Reason: Please use code tags
# 7  
Old 10-03-2013
This add text behind parent::__construct();, not on a new line below as requested.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find string in file and find the all records by string

Hello I would like to get know how to do this: I got a big file (about 1GB) and I need to find a string (for instance by grep ) and then find all records in this file based on a string. Thanks for advice. Martin (12 Replies)
Discussion started by: mape
12 Replies

2. Shell Programming and Scripting

sed - Find a String and append a text end of the Line

Hi, I have a File, which have multiple rows. Like below 123456 Test1 FNAME JRW#$% PB MO Approver XXXXXX. YYYY 123457 Test2 FNAME JRW#$% PB MO Super XXXXXX. YYYY 123458 Test3 FNAME JRW#$% PB MO Approver XXXXXX. YYYY I want to search a line which contains PB MO Approver and append... (2 Replies)
Discussion started by: java2006
2 Replies

3. Shell Programming and Scripting

Append a searched string with another string using sed

Hi, I need to replace and append a string in a text if grep is true. For eg: grep ABC test.txt | grep -v '\.$' | awk {'print $4'} | sed "s/ ? How do I replace all instances of "print $4" using sed with another sring? Eg of the string returned will be, lx123 web222 xyz Want to... (8 Replies)
Discussion started by: vchee
8 Replies

4. Shell Programming and Scripting

Find string in a file and append character

Hi Experts, Is there a way to find a string in a file then append a character to that string then save the file or save to another file. Here is an example. >cat test.txt NULL NULL NULL 9,800.00 NULL 1,234,567.01 I want to find all NON NULL String and add a dollar sign to those... (9 Replies)
Discussion started by: brichigo
9 Replies

5. Shell Programming and Scripting

find string and replace with string in other file

Dear all, I need your help, I have file like this: file1:23456 01910964830098775635 34567 01942809546554654323 67589 26546854368698023653 09778 58716868568576876878 08675 86178546154065406546 08573 54165843543054354305 . .file2: 23456 25 34567 26 67589 27 (2 Replies)
Discussion started by: attila
2 Replies

6. UNIX for Dummies Questions & Answers

Append a string on the next line after a pattern string is found

Right now, my code is: s/Secondary Ins./Secondary Ins.\ 1/g It's adding a 1 as soon as it finds Secondary Ins. Primary Ins.: MEDICARE B DMERC Secondary Ins. 1: CONTINENTAL LIFE INS What I really want to achieve is having a 1 added on the next line that contain "Secondary Ins." It... (4 Replies)
Discussion started by: newbeee
4 Replies

7. Linux

Find String in FileName and move the String to new File if not found

Hi all, I have a question.. Here is my requirement..I have 500 files in a path say /a/b/c I have some numbers in a file which are comma seperated...and I wanted to check if the numbers are present in the FileName in the path /a/b/c..if the number is there in the file that is fine..but if... (1 Reply)
Discussion started by: us_pokiri
1 Replies

8. Shell Programming and Scripting

sed to find first appearance and append string

I have a file like below #GROUP A belongs to Asia GROUP A jojh hans local admin GROUP A gege fans michel jing jong #GROUP U belongs to USA GROUP U jeff goal hello world My requirement is to grep for first apperence of GROUP A which is not commented and append my name to end of file.... (12 Replies)
Discussion started by: vkk
12 Replies

9. UNIX for Dummies Questions & Answers

How can i append a file name with a string

Hi All How can i append a file name with a string e.g. Lets say i have a file called ABC_TEST_1234_1.dat and i want to append the file name with a lets say 100 so the output file should look like ABC_100_TEST_1234_1.dat i have aroung 9000 file in a directory and want to... (3 Replies)
Discussion started by: Nikhilindurkar
3 Replies

10. Shell Programming and Scripting

Search a string and append text after the string

Hi, I have a file like this... <o t="Batch" id="8410" p="/" g="32"> <a n="name"> <v s="DBBA1MM"/> </a> <a n="owner"> <v r="/Administrator"/> </a> <a n="rights"> <v s="95"/> </a> <a n="debugLevel"> <v s="3"/> </a> <a n="avsStoreLoc"> <v... (8 Replies)
Discussion started by: kesu2k
8 Replies
Login or Register to Ask a Question