Read contains within { and replace the word


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Read contains within { and replace the word
# 1  
Old 02-24-2017
Read contains within { and replace the word

Hello Team,
I am looking for help to read contains from { } and replace the word.

basically, I need to use this for nagios configuration file where each host/service define within {}.

I want script or syntax to which read first word/line from {} and replace the desire word within that {}.

my nagios configuration file contains large no of hosts. I am looking for something which help me to manage easily.
# 2  
Old 02-24-2017
Hello,

I think I get the gist of what you're saying. What would be useful though would be if you could:

1. Provide an example entry in its original form
2. Provide a modified copy of that entry as you would want it to look afterwards

If you can provide something like that - an entire entry in the form it exists in the file, and a modified example of how you want it to look after your script has run - that would make things easier and clearer in terms of being able to help you come up with a solution.
# 3  
Old 02-24-2017
Hello,
Please find below example
Code:
original file:
define host{
        use                             solaris-server
        host_name                       test
        alias                           DevOps Test
        address                         test
        hostgroups                      devops-testing
}

define host{
        use                             solaris-server
        host_name                       test1
        alias                           DevOps Test1
        address                         test
        hostgroups                      devops-testing
}

modified file:
define host{
        use                             solaris-server
        host_name                       test
        alias                           DevOps Test
        address                         test
        hostgroups                      devops-production
}

define host{
        use                             solaris-server
        host_name                       test1
        alias                           DevOps Test1
        address                         test
        hostgroups                      devops-testing
}

I am getting request to change hostgroups or servicegroups of the servers. I do not want to do manually edit file. I am having file contain old hostgroups/servicegroups details with new one and hostaname. just want script or idea, how to proceed with that.

Please let me know if more details require from my side.
# 4  
Old 02-24-2017
Hi,

OK, thanks. A follow-up question: do you always want to change every occurrence of one particular group to another ?

For example, are you always wanting to change every single instance of devops-testing to devops-production ? Or if not, what criteria determine which instances should be changed and which should be left alone ?
# 5  
Old 02-24-2017
Hi,
I want to change instance depend upon host name. First it should match host name and then it should change the host group name or service group instance name from that group.
# 6  
Old 02-24-2017
Hello,

Thank you for providing more information. I think though there's still a bit more that needs explained before it can be determined what the best approcah here is.

So: you say which entries need to change and what they must be changed to depends on the hostname. Now, if that's literally true - as in, what happens to every single host depends entirely on human decision, and there's no actual pattern or thing in common that determines what's to happen to each one - then this isn't really scriptable. You'd spend longer writing a script to update the file than you would updating it by hand, since there's no rhyme or reason to the changes themselves, and they all have to be handled as individual special cases.

If, however, there's some actual set of rules or a pattern that governs what needs to happen to each host, then this can certainly be done somehow. But we'd need a complete and correct description of what those rules are in order to do that.

For example: are all hosts based on the Solaris template to go to a particular group ? Are all hosts with an HTTP check defined to go to a particular group ? Et cetera, et cetera. So long is there is a set of rules you can write down that 100% accurately describe what needs to happen to each host entry, this is probaly do-able somehow, though perhaps less easily than you're imagining.

But if there really isn't a set of clearly-defined and reliable rules you can always 100% count on to define each of the changes, then the changes won't be scriptable unfortunately.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. Shell Programming and Scripting

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 >> <?xml version="1.0" encoding="UTF-8"?> <esites> <esite> <name>XXX.com</name> <storeId>10001</storeId> <module> ... (4 Replies)
Discussion started by: Rajeev_hbk
4 Replies

3. Shell Programming and Scripting

Read a File line by line and split into array word by word

Hi All, Hope you guys had a wonderful weekend I have a scenario where in which I have to read a file line by line and check for few words before redirecting to a file I have searched the forum but,either those answers dint work (perhaps because of my wrong under standing of how IFS... (6 Replies)
Discussion started by: Kingcobra
6 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

how to read argument with $ value in the word

Hi i am having a shell script reading two arguments. when the shell script is passed with argument containing $ in it, the value from $ onwards is getting truncated and my script is failing. i have to do in reading the arguments in the shell script only as i am not having control on the... (3 Replies)
Discussion started by: duddukuri
3 Replies

6. Shell Programming and Scripting

Replace a word in a string starting with another word

Hi All, I have a file in which a number of lines are starting with similar first word but different next words. I want to replace the any nth word(not 1st or 2nd) with another word. Eg:- My file contains are like this:- Ram is a boy. Ram is a good boy. Ram plays cricket. Here I want to... (2 Replies)
Discussion started by: mukeshbaranwal
2 Replies

7. Shell Programming and Scripting

How to replace a word with another word

Hello Friends, How to substitue with a word by another word in file written in VI Editor. Thanks & Regards Siva Ranganath 7760774961 (2 Replies)
Discussion started by: sivaranganath
2 Replies

8. Shell Programming and Scripting

Replace a word after a particular word in a file

Hi, I want to replace a word in a file which occurs after a particular word. For example : $cat file.txt CASE WHEN AND c1 = 'I' AND c2= '2' THEN 1 WHEN AND c1= 'I' AND c2= '0' THEN 2 So in this example i want to replace... (4 Replies)
Discussion started by: ashwin3086
4 Replies

9. Shell Programming and Scripting

To read data word by word from given file & storing in variables

File having data in following format : file name : file.txt -------------------- 111111;name1 222222;name2 333333;name3 I want to read this file so that I can split these into two paramaters i.e. 111111 & name1 into two different variables(say value1 & value2). i.e val1=11111 &... (2 Replies)
Discussion started by: sjoshi98
2 Replies

10. UNIX for Dummies Questions & Answers

How read and replace Microsoft word in Unix

Hi, I'm newbie in UNIX. I would like to ask how to read a file which in Microsoft word format? Inside the doc file is just a few sentences . "It is a text. Help me with it". and I would like to replace the the word of text to message. I was trying with this for i in `find . -type f -name... (8 Replies)
Discussion started by: tee
8 Replies
Login or Register to Ask a Question