Σπαζοκεφαλιά με Bash Shell Script

nioakeim | Τετ, 06/09/2010 - 19:29 | 1' | 1

Καλησπέρα σας,

έχω σπαζοκεφαλιά με ένα script σε bash που γράφω και σχετίζεται με τον Bind.

θέλω λοιπόν κάποια στιγμή μάσα στο script να κοιτάξω το named.conf και να κοιτάξω την περιοχή με το

 

allow-recursion {
	localnets;
	};

και να άλλάξω το locanets; με localnets;ip;ip;ip;

Και το έκανα με το

sed -if 's/localnets;/localnets;ip;ip;ip;/g' named.conf

Έλα όμως που όταν ξανα-τρέχει, λογικά πάει και ξανα-αντικαθιστά το localnets με όλο το υπόλοιπο...

Προφανώς χρειάζομαι να βρω ένα τρόπο με conditional replace, μα ότι έχω βρει μέχρι τώρα όμως δεν έπιασαν τόπο.

Μήπως έχετε καμιά ιδέα που μπορεί να βοηθήσει;

Ευχαριστώ προκαταβολικά

 

Δώσε αστέρια!

MO: (ψήφοι: 0)

Σχόλια

Ίσως αν ψάχνεις για "localnets;" που να ακολουθείται από τέλος γραμμής;

Αν θυμάμαι καλά, σε regular expression το τέλος γραμμής συμβολίζεται με με το χαρακτήρα "$" (κ η αρχή σίγουρα με το χαρακτήρα "^"), οπότε λογικά κάτι τέτοιο:

sed -if 's/localnets;$/localnets;ip;ip;ip;/g' named.conf

νομίζω θα δουλέψει.

-- gnu_labis

Το Linux ΔΕΝ είναι Windows!!!