Sponsored Content
Top Forums Shell Programming and Scripting Bash Scripting Help to automate replacing multiple lines Post 302745971 by Silverlink34 on Tuesday 18th of December 2012 01:28:50 PM
Old 12-18-2012
Bash Scripting Help to automate replacing multiple lines

Background:
I am writing a script to help me automate tweaks and things I apply to a custom Android rom I developed. I am on the very last part of my script, and I am stuck trying to find the right command to do what I seek.

When I build roms from source, a file called updater-script is generated and it always has the signature of the source code's creator. Since I am now building it from source, I have to replace this signature with my own. Also there are a few commands I add in to make some apps uninstallable.

What I am looking for:
I want to automate the text replacement. I have created two files, one is called findsts and the other replaceccore.

findsts contains the signature that is ALWAYS in the updater-script. I want to use this file to tell the command I am to use that that is the selection I want replaced.

replaceccore has my signature and will eventually have commands to replace text in the updater-script, but for now I just want the signature replaced with the data in this file.

I first thought sed was the answer, but soon found that sed doesn't like variables, but rather would use literal strings. I was then referred to awk. Awk seems to be a very powerful command, but I have yet to see how it will help me in my current situation. I also know that the signature that i am finding and replacing has tons of special characters, including parenthesis, semi colons, and quotations. This also poses a problem because now not only do I need to figure out the correct command, but then how to tell it to use these files in a literal way and not try to interpret the commands in the file.

The details:

findsts contains:
Code:
ui_print("************************************************");
ui_print("*                                              *");
ui_print("*            STS-Dev-Team presents             *");
ui_print("*                                              *");
ui_print("*         JELLY BEAN for OMAP4 devices         *");
ui_print("*                                              *");
ui_print("*     Follow us  @dhacker29 and @hashcode0f    *");
ui_print("*        Get the GApps at goo.im/gapps         *");
ui_print("*                                              *");
ui_print("************************************************");
ui_print(" ");

replaceccore contains:
Code:
ui_print("*************************");
ui_print("*       CyanCore        *");
ui_print("*                       *");
ui_print("*   Brought to you by:  *");
ui_print("*    Team SpeedCore     *");
ui_print("*                       *");
ui_print("*    <-Developers->     *");
ui_print("*       2tealth         *");
ui_print("*     Silverlink34      *");
ui_print("*                       *");
ui_print("*<Performance Optimizer>*");
ui_print("*      The Doctor       *");
ui_print("*        Taecon         *");
ui_print("*************************");
ui_print(" ");

Here is a small part of updater-script, the file I actually am trying to edit, from the beginning of the file:

Code:
mount("ext3", "EMMC", "/dev/block/system", "/system");
package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");
package_extract_file("system/bin/backuptool.functions", "/tmp/backuptool.functions");
set_perm(0, 0, 0777, "/tmp/backuptool.sh");
set_perm(0, 0, 0644, "/tmp/backuptool.functions");
run_program("/tmp/backuptool.sh", "backup");
unmount("/system");
show_progress(0.500000, 0);
ui_print("************************************************");
ui_print("*                                              *");
ui_print("*            STS-Dev-Team presents             *");
ui_print("*                                              *");
ui_print("*         JELLY BEAN for OMAP4 devices         *");
ui_print("*                                              *");
ui_print("*     Follow us  @dhacker29 and @hashcode0f    *");
ui_print("*        Get the GApps at goo.im/gapps         *");
ui_print("*                                              *");
ui_print("************************************************");
ui_print(" ");
ui_print("Wiping cache...");
mount("ext3", "EMMC", "/dev/block/cache", "/cache");
delete_recursive("/cache");
ui_print("Wiping dalvik-cache...");
mount("ext3", "EMMC", "/dev/block/userdata", "/data");
delete_recursive("/data/dalvik-cache");
ui_print("Mounting your system...");
mount("ext3", "EMMC", "/dev/block/system", "/system");
ui_print("Deleting old system files...");
delete_recursive("/system");
ui_print("Starting Installation...");

If it makes a difference I know the developers who provide the source code and they are okay with other developers building roms from source and customizing it.

Thank you for reading. I hope this is not too complicated a task or annoying. I have been searching for a few days and finally broke down and decided to ask. Please be merciful Smilie

Edit:
So if sed actually worked this way, I would set it up like this:

Code:
sts=findsts
ccore=replaceccore
sed -i "s/$sts/$ccore/g' updater-script

but it doesn't, so here I am, back at the drawing board.

Last edited by joeyg; 12-18-2012 at 04:25 PM.. Reason: more detail
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

replacing multiple lines

i have a file : sample1.txt OBJECT="POINT" ACTION="REDEFINE" POINT_NAME="ABCD001G " GHYT_POPRIORITY_1="1" GHYT_POPRIORITY_2="1" GHYT_POPRIORITY_3="1" GHYT_POPRIORITY_4="1" GHYT_POPRIORITY_USER="1" HIGH_ALARM_PRIORITY_1="1" HIGH_ALARM_PRIORITY_2="1" HIGH_ALARM_PRIORITY_3="1" ... (1 Reply)
Discussion started by: ajnabi
1 Replies

2. Shell Programming and Scripting

replacing multiple lines with single line

Can any one give me the idea on replacing multiple blank lines with a single blank line? Please conside it for a file having more than 100 number of characters. Regards, Siba (3 Replies)
Discussion started by: siba.s.nayak
3 Replies

3. Shell Programming and Scripting

bash scripting: using multiple 'for loops'??

Hey guys, I'm kinda a noob at scripting. I am trying to create a script that uses multiple for loops with the lsiutility to monitor disk health on a system. The script runs, but it will continually echo an infinite number of LogVolumes when there are only 2 per virtual disk on my server. It's... (2 Replies)
Discussion started by: tank126
2 Replies

4. Shell Programming and Scripting

BASH: extracting values from multiple lines after a match

Hi there, I have the following output, # raidctl -l RAID Volume RAID RAID Disk Volume Type Status Disk Status ------------------------------------------------------ c0t1d0 IM OK c0t1d0 OK ... (4 Replies)
Discussion started by: rethink
4 Replies

5. Shell Programming and Scripting

Replacing pattern spanning multiple lines

Hi. I have input like this: <tr> <td class="logo1" rowspan="2"><a href="index.html"><img src="images/logo.png" /></a></td> <td class="pad1" rowspan="2">__</td> <td class="userBox"><img src="images/person.png"/> <a href="http://good.mybook.com/login.jsp">Sign In</a></td> <td... (5 Replies)
Discussion started by: zorrox
5 Replies

6. Shell Programming and Scripting

searching multiple lines and replacing in shell scripting

Hi, I have a file with below contents, ssenthil = rw anilkg = rw I want to search for "ssenthil" and need to delete line 1 and 2 , if the third line starts with "" respectively and blank line immediately and third line starts with " anilkg = rw Please help me . Great day... (5 Replies)
Discussion started by: anil8103
5 Replies

7. Shell Programming and Scripting

Replacing System.out.println with Logger.println in *.java using SED (spanned over multiple lines)

Hi, Can anyone help me out for my below problem. I need to replace all System.out.println with Logger.println in *.java using SED (spanning multiple lines) including current & sub-directories. I tried with below command. But it is not replacing when source text is spanned over multiple... (4 Replies)
Discussion started by: Bhanu Dhulipudi
4 Replies

8. Shell Programming and Scripting

Replacing a single line with multiple lines in a file

Hi Am confused with the usage of "sed" command I want to replace a single line with multiple lines of a file.. eg., A file has Hi, How are you? I need to replace as Am fine What are You doing? I used the script as string1="Hi, How are you?" echo "$string1 is the value"... (4 Replies)
Discussion started by: Priya Amaresh
4 Replies

9. Shell Programming and Scripting

Automate an application using scripting, managing multiple terminals

Hi I am new to Ubuntu and Bash scripting. I am working on a project to give a demo on an SDN application to my class. I need some help in scripting to create the demo. Please help in case if you have any idea on what am asking. The demo uses a tool called mininet. I need just one script so... (2 Replies)
Discussion started by: anzal
2 Replies

10. Shell Programming and Scripting

BASH - Regular Expressions :Looking for one word on multiple lines.

Im looking for a bash solution that will use Regular Expressions (not perl, sed or awk) to check the example data below and then give me a status. which would be just simply Match or Mismatch. SYS PS1 is present. Fan status: Normal Input Voltage status: Normal ... (5 Replies)
Discussion started by: popeye
5 Replies
All times are GMT -4. The time now is 06:27 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy