[+] awk sed czy co innego - wycinanie fragmentu tekstu

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

[+] awk sed czy co innego - wycinanie fragmentu tekstu

Post autor: lis6502 »

Walczę z tym od kilku godzin.
Powiedzmy że mam taki tekst

Kod: Zaznacz cały

BeDA dobrzE BraLY 6A5B0C2D 
Potrzebuję wyciąć z niego liczbę heksadecymalną. Robiłem to grepem, ale ten wyświetlał mi całą linię. awk sprawdzi się jeśli wiem, na którym 'polu' znajduje się poszukiwana przeze mnie wartość. Ew. od biedy wystarczy mi parametr do awka, który zadziała tak, że

Kod: Zaznacz cały

{print $1}
wyświetli mi pierwsze pole od końca. Sed chyba do tego się nie nada, przy takiej składni

Kod: Zaznacz cały

lis6502@Nexus:~$ echo BeDA dobrzE BraLY 6A5B0C2D |sed 's/[^0-9A-F]//g'
BDAEB6A5B0C2D
Byłem na http://www.majerowski.pl, ale mojego problemu tam nie poruszono. Forum też przeglądałem.
snah
Beginner
Posty: 103
Rejestracja: 19 lutego 2008, 09:09

Post autor: snah »

Kod: Zaznacz cały

echo BeDA dobrzE BraLY 6A5B0C2D | awk '{print NF; print $NF}'
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

Dzięki Ci wybawco! Jeszcze powiedz tylko skąd bierzesz takie mądrości? Jest jakiś kurs gdzieś?
snah
Beginner
Posty: 103
Rejestracja: 19 lutego 2008, 09:09

Post autor: snah »

Mam na studiach systemy operacyjne. Prowadzący nam dał kilka pdfów. Jak poszukasz to na pewno też coś znajdziesz, np. na szybko z wikipedii http://gnu.univ.gda.pl/~tomasz/prog/awk ... k-man.html .
RaV.
Posty: 87
Rejestracja: 28 czerwca 2006, 15:30
Lokalizacja: 127.0.0.1

Post autor: RaV. »

Wiem, że problem już rozwiązany, ale może na przyszłość się przyda, albo jako ciekawostka.
lis6502 pisze:wyświetli mi pierwsze pole od końca. Sed chyba do tego się nie nada, przy takiej składni
Kod:
lis6502@Nexus:~$ echo BeDA dobrzE BraLY 6A5B0C2D |sed 's/[^0-9A-F]//g'
BDAEB6A5B0C2D
Nada :)

Kod: Zaznacz cały

echo BeDA dobrzE BraLY 6A5B0C2D | sed -e 's/.* \([0-9A-F]*\)$/\1/'
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

Również Ci dziękuję. Niestety już nie załapiesz się do podziękowań w moim niewielkim faq ;p
ODPOWIEDZ