Nowe posty

Autor Wątek: Dwa polecenia w jednym.  (Przeczytany 3618 razy)

climbwave

  • Gość
Dwa polecenia w jednym.
« dnia: 2009-10-18, 14:59:01 »
Witam,

Chcialbym sie zapytac o nastepujaca rzecz.
CHce wyciagnac z pliku poczatek linii V i R oraz zapisac wyciagniete dane do jednego pliku w takiej samej kolejnosci.

grep ^V $file > plik1
grep ^R $file > plik1
Przylkadowo majac plik :
Vaskodjasfjliaufnilewrufniweufnweifunweiufierfn
Rsøldakfmnsadkjfnsafdjnsadkfnsldkfnklsdfjn
Rksjdafnlksdjafnlfjasd
Hasiuhdisadufhdsifsdfhdufhusdfh
Zsjdakfnsdfsdfhisudfhiusdfh
Vsaidjfsdflsdflsdf

chce wyciagnac zdanie zaczynajace sie od V i R,

Jak to zrobic?
Z gory dzieki.
c

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Dwa polecenia w jednym.
« Odpowiedź #1 dnia: 2009-10-18, 15:29:05 »
Najłatwiej wyrażeniem regularnym, którego i tak już używasz. Trzeba tylko w nim zawrzeć alternatywę.

grep -e "^V\\|^R" "$file" > plik1

benyo

  • Gość
Dwa polecenia w jednym.
« Odpowiedź #2 dnia: 2009-10-18, 15:29:15 »
cat plikzktoregowyciagamy.txt | grep '^V\\|^R' > wynik.txt

gdy chcesz tworzyc nowy plik lub

cat plikzktoregowyciagamy.txt | grep '^V\\|^R' >> wynik.txt

gdy chcesz dopisac do istniejacego juz pliku

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3070
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Dwa polecenia w jednym.
« Odpowiedź #3 dnia: 2009-10-18, 22:18:41 »
Cytat: benyo
cat plikzktoregowyciagamy.txt | grep '^V\\|^R' > wynik.txt
cat plikzktoregowyciagamy.txt | grep '^V\\|^R' >> wynik.txt
Jako kociarz protestuję przeciwko tzw. martwym kotom. Generalnie zasady są takie:
* Jeżeli potok zaczyna się od cat PLIK | komenda1 parametry | komenda2 parametry | ... to konwertujesz to na komenda1 parametry < plik | komenda2 parametry | ....

Komendy typu awk, sed, grep przyjmują jako ostani parametr nazwę pliku, z którego zassać dane. Linijka zatem się upraszcza do komenda1 parametry plik | ... | ....
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

climbwave

  • Gość
Dwa polecenia w jednym.
« Odpowiedź #4 dnia: 2009-10-19, 08:44:24 »
Witam,

Dziekuje za odpowiedzi - pomogly. Oczywiscie pokazal sie nowy problem do rozwiazania :lol: . Postaram sie go rozwiazac samemu ale gdybym nie dal rady to wiem, ze moge liczyc na was :)

c

---------------------
Edycja:

Mam taki wiersz:
R   1 571096.19058096.511.9   2 571092.19058084.612.0   3 571088.19058072.812.01

Chcialbym z niego wyciagnac 24 i 27 wartosc, 50 i 53 wartosc, 77 i 81 wartosc.
Jakiej komendy uzyc do tego ?

head i tail ucinaja caly wiersz ...

c

jk33

  • Gość
Dwa polecenia w jednym.
« Odpowiedź #5 dnia: 2009-10-19, 18:21:28 »
man cut

Nie jestem pewien czy dobrze zrozumiałem co chcesz zrobić, ale myślę że to jest to czego potrzebujesz.