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.