Wyci

Potrzebujesz pomocy z C, C++, perl, python, itp.
Shaken
Posty: 24
Rejestracja: 21 stycznia 2010, 17:59

Wyciąganie fragmentu zdania/kodu z pliku i zapis do nowego pliku

Post autor: Shaken »

Witam serdecznie.
Szukam funkcji w bashu, która pozwoli mi na wycięcie fragmentu kodu/zdania z całego pliku i
zapisze ten fragment do nowego pliku.

Dla przykładu, chcę aby ze zdania:

Kod: Zaznacz cały

Ala ma kota.
wyciągnąć: i zapisać do pliku wycinek.php

Albo z kodu:

Kod: Zaznacz cały

<b>Pogrubienie</b>
wyciągnąć:

Kod: Zaznacz cały

Pogrubienie
i zapisać do pliku wycinek.php

Funkcją grep wyszukuję sobie odpowiednią linię. Teraz tylko problem jak ją "obciąć". Samo zapisywanie lub tworzenie i uruchamianie skryptu mam opanowane.

Chodzi mi głównie o odczyt tych danych.

Z góry dziękuję za wskazówki i wszelką pomoc.
Pozdrawiam
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2324
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Ale na jakiej zasadzie chcesz to wyciągać? Jaki jest wzór?
Zawsze n wyraz czy co?
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post autor: kodama »

Jak pisze kolega wyżej - wybór narzędzia, którym byś mógł to zrobić zależy w sumie w dużej mierze od tego co chcesz wyciąć.
http://unixhelp.ed.ac.uk/CGI/man-cgi?sed
http://unixhelp.ed.ac.uk/CGI/man-cgi?awk
Maxman
Posty: 11
Rejestracja: 20 stycznia 2008, 11:44

Post autor: Maxman »

Możesz też użyć:

Kod: Zaznacz cały

awk '{print $1}'
Shaken
Posty: 24
Rejestracja: 21 stycznia 2010, 17:59

Post autor: Shaken »

To może inaczej, chciałbym wyciąć fragment tekstu znajdujący się pomiędzy znakiem > a znakiem < i zapisać go do pliku np. wycinek.php.
W tekście pojawiają się litery, cyfry i znaki typu ,. (przecinek, kropka) a także polskie znaki (ą,ę,ś,ó,ł...).
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post autor: kodama »

To tutaj polecam się zapoznać dla przykładu -> http://debian.linux.pl/threads/27610-Za ... post152942 polecenie sed, które wyciąga adres ip po ciągu DST. Wystarczy zmodyfikować wzór i będzie działać.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Możesz to zrobić min. za pomocą narzędzi: cut, grep, sed, awk, perl, i pewnie masą innych. Najlepiej gdybyś wybrał jedno (wydaje mi się, że do tego najlepiej nada się sed, lub jeśli zadanie jest bardziej skomplikowane - perl) i zapoznał się z wyrażeniami regularnymi.

Kod: Zaznacz cały

echo '<b>Pogrubienie</b>' | sed 's/.*>\(.*\)<.*/\1/'
Pogrubienie
echo '<b>Pogrubienie</b>' | perl -lne '/>(\w+)</; print $1'
Pogrubienie
ODPOWIEDZ