[+] BASH - sed, pozostawienie wyszukanego ciągu
: 25 maja 2010, 22:28
Witam.
Czy da się zrobić takie coś, używając polecenia sed? Mam w pliku do wyszukania konkretną wartość (7 cyfrowy ciąg liczbowy) i usunąć z tego pliku wszystko poza nią?
Pozdrawiam
Edycja:
Dobrze, wygląda na to, że sobie chyba poradziłem z tym tematem.
EDIT: No dobra, prawie sobie poradziłem, bo to działa wtedy, gdy po tych 7 liczbach (ta trójka jest tam na początku celowo - ciąg zaczyna się od cyfry 3) jest koniec linii. Jak zmusić go do tego, żeby odczytał tylko te 7 znaków i nic więcej?
Czasem zdarza się też, że w pliku zahaczy o jakąś kombinację np.: 3erfdsf5, którą też mi wyrzuci jako wynik działania - próbowałem wstawić:
ale bez skutku. Wymyśliłem takie coś:
i z tego co widzę jest w porządku. Tylko pytanie - da się to jakoś ładnie skrócić? I nadal pozostaje kwestia tego, żeby odczytał tylko 7 znaków, nie więcej.
Czy da się zrobić takie coś, używając polecenia sed? Mam w pliku do wyszukania konkretną wartość (7 cyfrowy ciąg liczbowy) i usunąć z tego pliku wszystko poza nią?
Pozdrawiam
Edycja:
Dobrze, wygląda na to, że sobie chyba poradziłem z tym tematem.
Kod: Zaznacz cały
sed -n -e 's/.*\(3.*\)/\1/p' plik.txt
Czasem zdarza się też, że w pliku zahaczy o jakąś kombinację np.: 3erfdsf5, którą też mi wyrzuci jako wynik działania - próbowałem wstawić:
Kod: Zaznacz cały
sed -n -e 's/.*\(3[;digit:]*\)/\1/p' plik.txt
Kod: Zaznacz cały
sed -n -e 's/.*\(3[0-9][0-9][0-9][0-9][0-9][0-9]\)/\1/p' plik.txt