Shell Script @ Find a key word and If the key word matches then replace next 7 lines only


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell Script @ Find a key word and If the key word matches then replace next 7 lines only
# 1  
Old 05-06-2014
Apple Shell Script @ Find a key word and If the key word matches then replace next 7 lines only

Hi All,

I have a XML file which is looks like as below. <<please see the attachment >>
Code:
  <?xml version="1.0" encoding="UTF-8"?>
  <esites>
      <esite>
          <name>XXX.com</name>
          <storeId>10001</storeId>
                                  <module>
              <name>InventoryVisibility</name>
              <active>
                <activeStatus>true</activeStatus>
                <sku_display>true</sku_display>
                <cart>true</cart>
                <order_review>true</order_review>
                <process_order>true</process_order>
            </active>
              <standAlone>false</standAlone>
              <timeout>120</timeout>
              <codec>
                  
              </codec>
              <transport>
                  
              </transport>
              <throttle>
                  <throttlestatus>True</throttlestatus>
                  <throttlelimit>18</throttlelimit>
              </throttle>
          </module>

Need shell script where i need find the word “InventoryVisibility” in the XML file [blue in color ], once the word[inventoryVisibility”] is found I want to replace next 7 lines [red in color] with the below highlighted text.
Code:
  <active>
                  <activeStatus>False</activeStatus>
                  <sku_display> False </sku_display>
                  <cart> False </cart>
                  <order_review> False </order_review>
                  <process_order> False </process_order>
  </active>

your help is appreciated. Thanks in advance.

Last edited by Franklin52; 05-06-2014 at 09:21 AM.. Reason: Please use code tags
# 2  
Old 05-06-2014
Is it always 7 lines? Wouldn't it be wiser to remove the <active> ... </active> and insert your replacement text?
# 3  
Old 05-06-2014
Hi Rajeev,

This is quick and dirty, but should work.

If your first file is called file01.xml and you put the contents of the second in something like file02.xml you can do the following.

Code:
sed -e '/<active>/,/<\/active>/d' file01.txt > out01.txt

Then you should be able to run the following command.

Code:
sed -e '/InventoryVisibility/ r file02.txt' < out01.txt > out02.txt

Once you have done that all you should have to do is move out02,txt to filename.xml - remember and keep copies of the originals.

This can probably be done in a single line of sed or awk, but I don't use it enough.

Regards

Gull04
# 4  
Old 05-06-2014
try also:
Code:
awk '
p==1 && /<\/active>/ {p=0}
p==1 {sub(">.*<",">False<")}
/> *InventoryVisibility *</ { p=1 }
1
' sample.xml

# 5  
Old 05-06-2014
Code:
sed '/InventoryVisibility/,/<\/active>/ s/true/False/' filename

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to search for a word in column header that fully matches the word not partially in awk?

I have a multicolumn text file with header in the first row like this The headers are stored in an array called . which contains I want to search for each elements of this array from that multicolumn text file. And I am using this awk approach for ii in ${hdr} do gawk -vcol="$ii" -F... (1 Reply)
Discussion started by: Atta
1 Replies

2. Shell Programming and Scripting

How do i replace a word ending with "key" using awk excpet for one word?

echo {mbr_key,grp_key,dep_key,abc,xyz,aaa,ccc} | awk 'gsub(/^|abc,|$/,"") {print}' Required output {grp_key,xyz,aaa,ccc} (5 Replies)
Discussion started by: 100bees
5 Replies

3. Homework & Coursework Questions

Tru to print the last name and first name using key word

I am new to shell scripting and trying to do the below Stan:Smith:Detroit:MI Jim:Jones:Farmington Hills:MI Jack:Frost:Denver:CO Sue:Apple:New York:NY Cindy:Thompson:Battle Creek:MI John:Smith:Denver:CO George:Jones:New York:NY Need to create a shell script This script will display the... (1 Reply)
Discussion started by: jakemathew
1 Replies

4. Shell Programming and Scripting

Find and replace a word in all the files (that contain the word) under a directory

Hi Everyone, I am looking for a simple way for replacing all the files under a directory that use the server "xsgd1234dap" with "xsdr3423pap". For Example: In the Directory, $pwd /home/nick $ grep -l "xsgd1234dap" *.sh | wc -l 119 I have "119" files that are still using... (5 Replies)
Discussion started by: filter
5 Replies

5. Shell Programming and Scripting

print lines from a file containing key word

i have a file containing over 1 million records,and i want to print about 300,000 line containing a some specific words. file has content. eg 1,rrt,234 3,fgt,678 4,crf,456 5,cde,drt 6,cfg,123 and i want to print the line with the word fgt,crf this is just an example,my file is so... (2 Replies)
Discussion started by: tomjones
2 Replies

6. Shell Programming and Scripting

perl (word by word check if a hash key)

Hi, Now i work in a code that 1-get data stored in the database in the form of hash table with a key field which is the " Name" 2-in the same time i open a txt file and loop through it word by word 3- which i have a problem in is that : I need to loop word by word and check if it is a... (0 Replies)
Discussion started by: eng_shimaa
0 Replies

7. Shell Programming and Scripting

key word parameter

cat shell_script.ksh x=$A y=$B export x export y echo $x echo $y when i am running this with a command ksh shell_script.ksh -A 10 -B 20 its not showing anything .... could you let me know how i can use key word type paramter (2 Replies)
Discussion started by: dr46014
2 Replies

8. Shell Programming and Scripting

Help adding a key word search to my script

Hello: I need help adding a key word search to my bash script. I have the following script. My boss whats the user to be able to add a search word e.g. unknown failures for the script to search the logs through and find the instances. I had originally done it so it grepped for unknown... (8 Replies)
Discussion started by: taekwondo
8 Replies

9. Shell Programming and Scripting

search for key word and execute

Hi, I am writing a shell (after 6-7 months)that has to receive text from another shell, check if the first line in the text has a key word and then execute different shell.I could come up with the below program structure, please suggest me if there is a better way to do it or please help me with... (14 Replies)
Discussion started by: rider29
14 Replies

10. UNIX for Dummies Questions & Answers

Searching for key word within a file

Hello, I have a directory that holds all of my matlab codes. I am trying to run a searh on all of the matlab files that have the word "while" written inside the sytax of the code. Looking for all of the times that I did a while loop. Can someone help me do this? Thanks in advance. ... (1 Reply)
Discussion started by: moradwan
1 Replies
Login or Register to Ask a Question