Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest niedziela, 13 lipca 2025, 01:43

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 3 ] 
Autor Wiadomość
 Tytuł: pomoc z sed
Post: czwartek, 17 marca 2005, 00:53 
Offline
MODERATOR

Rejestracja: wtorek, 31 sierpnia 2004, 23:06
Posty: 3267
Lokalizacja: Katowice
Mam problem a mianowicie
Jest plik z zawartoscia:
125.145.647.987
555.555.555.555
10.10.10.10

i teraz chce sprawdzic czy w pliku wystepuje ciag znakow 10.10.10.10 jezeli tak to ma go uzunac.
Z wyszukaniem i sprawdzenie nie ma problemu ale problem mam z usunieciem, bodajze da sie to zrobic przez polecenie sed tylko jak ;/ narazie udalo mi sie zamienic 10.10.10.10 na spacje ale wtedy zostaje mi pusty wiersz ;/
Chyba ze ktos ma inny pomysl

Pozdrawiam

_________________
Obrazek


Na górę
 Wyświetl profil  
 
 Tytuł: Re: pomoc z sed
Post: czwartek, 17 marca 2005, 01:48 
Offline
MODERATOR

Rejestracja: piątek, 5 lipca 2002, 17:31
Posty: 2449
Lokalizacja: Londyn
czerwo pisze:
Mam problem a mianowicie
Jest plik z zawartoscia:
125.145.647.987
555.555.555.555
10.10.10.10

i teraz chce sprawdzic czy w pliku wystepuje ciag znakow 10.10.10.10 jezeli tak to ma go uzunac.


there's so many ways to skin a cat :-)

to usunie wszystkie linie zawierające 10.10.10.10:

grep -v '10\.10\.10\.10' /scieżka/plik > plik_wynikowy

jak wyżej sedem:

sed -i '/10\.10\.10\.10/d' /sciezka/plik

to usunie wszystkie linie w których występuje 10.10.10.10 na początku linii:

sed -i '/^10\.10\.10\.10/d' /sciezka/plik

jak wyżej ale grepem:

grep -v '^10\.10\.10\.10' /sciezka/plik > plik_wynikowy

można jeszcze uzyć awk... i paru innych narzędzi :-)

oczywiście najczęściej takich poleceń używa się w scriptach więc zamiast operacji na plikach można użyć pipe (czyli przekierowania wyjścia jednego polecenia na wejscie innego):

jakieś_operacje | sed '/^10\.10\.10\.10/d' | inne_operacje

(pipe uzyskujemy wstawiając pomiędzy poleceniami pionową kreseczkę)

UWAGI!
1. opcja "-i" w wywołaniu seda nie będzie działać na każdej wersji seda. sed w NND potrafi skorzystać z tej opcji.
2. jeśli używamy seda w pipe to niepotrzebna jest opcja -i
3. Powyższy post został zmieniony w stosunku do pierwotnej wersji - poprawiłem błędy zgłoszone przez Mac!ka. Dziękuję za uwagi. Pozostałych przepraszam za wprowadzenie w błąd.

_________________
Mis'
___________________________________
"Real Men Use Telnet on port 80" (el bid)


Ostatnio zmieniony sobota, 19 marca 2005, 23:26 przez Mis', łącznie zmieniany 1 raz

Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 19 marca 2005, 11:06 
Offline
MODERATOR

Rejestracja: wtorek, 31 sierpnia 2004, 23:06
Posty: 3267
Lokalizacja: Katowice
dzieki Mis` wsyzstko chodzi jeszcze sie musze sporo nauczyc ale teraz mam inny problem

potrzebuje sprawdzac czy 10.10.10.1 albo inne ip ze to jest ip a nie kawalek tekstu
mozna to zrobic spokojnie grepem ale mam problemy a mianowicie adres ip moze byc w postaci x.x.x.x; xxx.xxx.xxx.x itd.
dlatego musze napisac ze ma szukac lini w postaci
liczba,liczba ale nie musi byc, liczba ale nie musi byc, kropka, itd

wymyslilem ze mozna to zrobc

grep -w [[:digit:]] ale nie umiem 2 znaku jak zrobic ze moze byc ale nie musi czyli przedzial ze wystepuje 0 lub 2 bo jeszcze 2 liczba i pozniej kropka.
Albo moze da sie jakis wzor zastosowac walczyl juz ktos z czym takim

_________________
Obrazek


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 3 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl