[+] BASH i grep, usuwanie ci

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
bagsiur
Beginner
Posty: 132
Rejestracja: 01 czerwca 2008, 22:12
Lokalizacja: Będzin

[+] BASH i grep, usuwanie ciągu tekstu z pliku

Post autor: bagsiur »

Witam wszystkich użyszkodników po dłuższej przerwie ;)

Piszę system podobny do directAdmin. Utknąłem w jednym miejscu i jak na razie moje próby kończą się fiaskiem:

mam plik /etc/bind/named.conf.local z którego chcę usunąć jedną strefę. Przykładowy plik:

Kod: Zaznacz cały

 zone "example.com.pl" {
         type master;
         file "/var/cache/bind/example2.com.pl.hosts";
         };
 zone "example2.com.pl" {
         type master;
         file "/var/cache/bind/example2.com.pl.hosts";
         };
 zone "example3.com.pl" {
         type master;
         file "/var/cache/bind/example3.com.pl.hosts";
         };
 zone "example4.com.pl" {
         type master;
         file "/var/cache/bind/example4.com.pl.hosts";
         };
I teraz chciałbym pozbyć się powiedzmy domeny example2.com.pl Próbuję zrobić to korzystając z grep:

Kod: Zaznacz cały

grep -v -A3 'zone "example.com.pl' /etc/bind/named.conf.local 
i później zapisać wyniki do pliku i operować na tym dalej. Niestety połączenie negacji zapytania -v z -A3 nie daje spodziewanego rezultatu. ;(
W jaki sposób mogę rozwiązać mój problem? Czyli jak z pliku named.conf.local usunąć ciąg znaków:

Kod: Zaznacz cały

 zone "example4.com.pl" {
         type master;
         file "/var/cache/bind/example4.com.pl.hosts";
         };
Próbowałem poradzić sobie z problemem za pomocą programu sed. Niestety ciągle otrzymywałem komunikat:

Kod: Zaznacz cały

sed: -e wyrażenie #1, znak 99: oczekiwano nowszej wersji programu sed
Więc uznałem że muszę poradzić sobie korzystając z grepa

Z góry dziękuję za pomoc ;)
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2305
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Kod: Zaznacz cały

sed -i 's/example2.com.pl//g' /sciezka/do/pliku
Usunie podaną frazę.
Awatar użytkownika
bagsiur
Beginner
Posty: 132
Rejestracja: 01 czerwca 2008, 22:12
Lokalizacja: Będzin

Post autor: bagsiur »

Użyłem seda i skorzystałem z takiej składni:

Kod: Zaznacz cały

sed -i '/^zone "example3.com.pl"/','/};/d' /etc/bind/named.conf.local
Może komuś się przyda ;)
ODPOWIEDZ