Sponsored Content
Top Forums Shell Programming and Scripting Using sed to replace strings if NOT found Post 302636599 by lamoul on Monday 7th of May 2012 04:44:31 PM
Old 05-07-2012
Using sed to replace strings if NOT found

Dear expert,

I need an urgent help.

I would like to update my /etc/ntp.conf file using sed.

1) if script find this string "127.127.1.0" then add the lone below
Code:
#server 127.127.1.0

2) is script find this string "fudge 127.127.1.0 stratum 10" then add
Code:
#fudge 127.127.1.0 stratum 10

2) if there is no "server 192.168.122.76" then add
Code:
server 192.168.122.76

at the end, save the new content into thesame file /etc/ntp.conf

Below is my sript:

My script below deosn't seems to work. Every time i run /etc/ntp.conf never get update

# Preparing the clock to synchronize with Network clock
Code:
const='tinker panic 0'
if [ -e /etc/ntp.conf ]; then
  grep -q -e "$const" /etc/ntp.conf
  if [ $? = 1 ]; then
    echo "$const  ; not found but will be inserted as first line!"
    sed -i.bak '1 i\tinker panic 0' /etc/ntp.conf
  fi
# Add '#' to beginning of line if it is not already there
# to disable the local clock.
sed -i.bak \
    -e 's/^server 127.127.1.0$/#server 127.127.1.0/' \
    -e 's/^fudge  127.127.1.0 stratum 10$/#fudge 127.127.1.0 stratum 10/' \
    -e 's/^server 192.168.122.76$/server 192.168.122.76/' /etc/ntp.conf
fi

Much appreciate!
Thank you!

Last edited by Scrutinizer; 05-07-2012 at 06:26 PM.. Reason: code tags
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace Strings with sed or awk

Hello i need some help with the usage of sed. Situation : 2 textfiles, file.in , file.out In the first textfile which is called file.in are the words for the substitution. Every word is in a new-line like : Firstsub Secondsub Thridsub ... In the second textflie wich is called file.out is... (5 Replies)
Discussion started by: Kingbruce
5 Replies

2. Shell Programming and Scripting

replace two character strings by two variables with sed command

Hello, I want to writte a script that replace two character strings by two variables with the command sed butmy solution doesn't work. I'm written this: sed "s/TTFactivevent/$TTFav/g && s/switchSLL/$SLL/g" templatefile. I want to replace TTFactivevent by the variable $TTFav, that is a... (4 Replies)
Discussion started by: POPO10
4 Replies

3. Shell Programming and Scripting

Help with sed search&replace between two strings

Hi, i read couple of threads here on forum, and googled about what bugs me, yet i still can't find solution. Problem is below. I need to change this string (with sed if it is possible): This is message text that is being quoted to look like this: This is message text that is being quotedI... (2 Replies)
Discussion started by: angrybb
2 Replies

4. Shell Programming and Scripting

Using sed to replace two different strings?

Hey everyone! Simple question - I am trying to use sed to replace two different strings. As it stands I can implement this as: sed -i 's/TIMEOUT//g' sed -i 's/null//g' And it works. However, is it possible to shrink that down into a single command? Will there be any performance benefits? (3 Replies)
Discussion started by: msarro
3 Replies

5. Shell Programming and Scripting

Using SED with variable to replace strings in while loop

Hi guys, Hi have this input (Menu.xml)<?xml version="1.0" encoding="ISO-8859-1"?> <breakfast_menu> <food> <name>Berry-Berry Belgian Waffles</name> <price>$8.95</price> <calories>900</calories> </food> <food> <name>French Toast</name> ... (6 Replies)
Discussion started by: cgkmal
6 Replies

6. Shell Programming and Scripting

sed and awk giving error ./sample.sh: line 13: sed: command not found

Hi, I am running a script sample.sh in bash environment .In the script i am using sed and awk commands which when executed individually from terminal they are getting executed normally but when i give these sed and awk commands in the script it is giving the below errors :- ./sample.sh: line... (12 Replies)
Discussion started by: satishmallidi
12 Replies

7. Programming

How to replace the complex strings from a file using sed or awk?

Dear All, I am having a requirement to find the difference between 2 files and generate a discrepancy report out of it as an html page. I prefer using diff -y file1 file2 since it gives user friendly layout to know any discrepancy in the record and unique records among the 2 file. Here's how it... (12 Replies)
Discussion started by: Badhrish
12 Replies

8. Shell Programming and Scripting

sed Find and Replace Text Between Two Strings or Words

I am looking for a sed in which I can recognize all of the text in between two indicators and then replace it with a place holder. For instance, the 1st indicator is a list of words "no|noone|havent" and the 2nd indicator is a list of punctuation ".|,|!".From a sentence such as "noone... (3 Replies)
Discussion started by: owwow14
3 Replies

9. UNIX for Beginners Questions & Answers

sed find 2 strings and replace one

Hi Everyone, I want to find this 2 strings in a single line a file and replace the second string. this is the line i need to find <param name="user" value="CORE_BI"/> find user and CORE_BI and replace only CORE_BI with admin so finally the line should look like this. <param... (5 Replies)
Discussion started by: shajay12
5 Replies

10. Shell Programming and Scripting

How to search and lossless replace strings using sed?

Hello, I would like to replace all occurencies of long data types by others (coresponding int) using 'sed' in the extensive source code of a software package written for 32 bit CPUs. I must use regular expressions to avoid wrong replacements like s/unsigned]+long/ulong/gLeaving out... (2 Replies)
Discussion started by: Mick P. F.
2 Replies
RESOLVCONF.CONF(5)					      System Manager's Manual						RESOLVCONF.CONF(5)

NAME
resolvconf.conf -- resolvconf configuration file DESCRIPTION
resolvconf.conf is the configuration file for resolvconf(8). The resolvconf.conf file is a shell script that is sourced by resolvconf(8), meaning that resolvconf.conf must contain valid shell commands. Listed below are the standard resolvconf.conf variables that may be set. After updating this file, you may wish to run resolvconf -u to apply the new configuration. RESOLVCONF OPTIONS
interface_order These interfaces will always be processed first. If unset, defaults to the following:- lo lo[0-9]* dynamic_order These interfaces will be processed next, unless they have a metric. If unset, defaults to the following:- tap[0-9]* tun[0-9]* vpn vpn[0-9]* ppp[0-9]* ippp[0-9]* search_domains Prepend search domains to the dynamically generated list. search_domains_append Append search domains to the dynamically generated list. domain_blacklist A list of domains to be removed from consideration. To remove a domain, you can use foo.* To remove a sub domain, you can use *.bar name_servers Prepend name servers to the dynamically generated list. You should set this to 127.0.0.1 if you use a local name server other than libc. name_servers_append Append name servers to the dynamically generated list. name_server_blacklist A list of name servers to be removed from consideration. The default is 0.0.0.0 as some faulty routers send it via DHCP. To remove a block, you can use 192.168.* private_interfaces These interfaces name servers will only be queried for the domains listed in their resolv.conf. Useful for VPN domains. This is equivalent to the resolvconf -p option. state_dir Override the default state directory of /run/resolvconf. This should not be changed once resolvconf is in use unless the old direc- tory is copied to the new one. LIBC OPTIONS
The following variables affect resolv.conf(5) directly:- resolv_conf Defaults to /etc/resolv.conf if not set. resolv_conf_options A list of libc resolver options, as specified in resolv.conf(5). resolv_conf_passthrough When set to YES the latest resolv.conf is written to resolv_conf without any alteration. resolv_conf_sortlist A libc resolver sortlist, as specified in resolv.conf(5). resolv_conf_local_only If a local nameserver is configured then the default is just to specify that and ignore all other entries as they will be configured for the local nameserver. Set this to YES to list them instead, if you need working DNS and the local nameserver stops functioning at the expense of duplicated server queries. SUBSCRIBER OPTIONS
openresolv ships with subscribers for the name servers dnsmasq(8), named(8), pdnsd(8) and unbound(8). Each subscriber can create configura- tion files which should be included in in the subscribers main configuration file. dnsmasq_conf This file tells dnsmasq which nameservers to use for specific domains. dnsmasq_resolv This file tells dnsmasq which nameservers to use for global lookups. Example resolvconf.conf for dnsmasq: nameservers=127.0.0.1 dnsmasq_conf=/etc/dnsmasq-conf.conf dnsmasq_resolv=/etc/dnsmasq-resolv.conf Example dnsmasq.conf: listen-address=127.0.0.1 conf-file=/etc/dnsmasq-conf.conf resolv-file=/etc/dnsmasq-resolv.conf named_options Include this file in the named options block. This file tells named which nameservers to use for global lookups. named_zones Include this file in the named global scope, after the options block. This file tells named which nameservers to use for specific domains. Example resolvconf.conf for named: nameservers=127.0.0.1 named_options=/etc/named-options.conf named_zones=/etc/named-zones.conf Example named.conf: options { listen-on { 127.0.0.1; }; include /etc/named-options.conf; }; include /etc/named-zones.conf; pdnsd_conf This is the main pdnsd configuration file which we modify to add our forward domains to. If this variable is not set then we rely on the pdnsd configuration file setup to read pdnsd_resolv as documented below. pdnsd_resolv This file tells pdnsd about global nameservers. If this variable is not set then it's written to pdnsd_conf. Example resolvconf.conf for pdnsd: nameservers=127.0.0.1 pdnsd_conf=/etc/pdnsd.conf # pdnsd_resolv=/etc/pdnsd-resolv.conf Example pdnsd.conf: global { server_ip = 127.0.0.1; status_ctl = on; } server { # A server definition is required, even if emtpy. label="empty"; proxy_only=on; # file="/etc/pdnsd-resolv.conf"; } unbound_conf This file tells unbound about specific and global nameservers. Example resolvconf.conf for unbound: nameservers=127.0.0.1 unbound_conf=/etc/unbound-resolvconf.conf Example unbound.conf: include: /etc/unbound-resolvconf.conf SEE ALSO
resolv.conf(5) and resolvconf(8). AUTHORS
Roy Marples <roy@marples.name> BUGS
Please report them to http://roy.marples.name/projects/openresolv BSD
March 19, 2012 BSD
All times are GMT -4. The time now is 11:06 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy