Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-12-30 04:42:47

  Paul87 - Użytkownik

Paul87
Użytkownik
Zarejestrowany: 2010-12-28

Terminal tr, cut, grep

Witam,

Mam tekst typu:

abc abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9 abc10 itd.

Za pomocą grep cut lub tr chce żeby wyglądał:

abc abc2 abc3
abc4 abc5 abc6
abc7 abc8 abc9
abc10 itd.

Inaczej mówiąc co trzeci biały znak spacji był '\n'.

jak to zrobić?

Ostatnio edytowany przez Paul87 (2010-12-30 04:44:01)

Offline

 

#2  2010-12-30 10:26:47

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Terminal tr, cut, grep

koniecznie tych komend ... bo najlepszy wydawalby sie sed ...


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#3  2010-12-30 11:26:12

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: Terminal tr, cut, grep

... lub awk.


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#4  2010-12-30 11:28:15

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: Terminal tr, cut, grep

Nie da się. Żaden z nich nie pozwala na tworzenie pętli, a bez pętli tego nie zrobisz.

Możesz zrobić pętlę shellową, ale kiedy już używasz shella, to wystarczą Ci wbudowane polecenia (dash-compatible):

Kod:

#!/bin/sh
unset line
j=0

for i in abc abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9 abc10 itd.; do 
    line="$line $i"
      j=$((j+1))
      if [ "$j" -ge 3 ]; then 
        echo "$line"
          unset line
          j=0
      fi
done
if [ ! -z "$line" ]; then
    echo "$line"
fi

Wczytywanie tych „abc” z pliku oraz STDIN pozostawiam jako pracę domową. Powinieneś sobie poradzić.

Offline

 

#5  2010-12-30 12:34:32

  Paul87 - Użytkownik

Paul87
Użytkownik
Zarejestrowany: 2010-12-28

Re: Terminal tr, cut, grep

Muszą być koniecznie te komendy Można używac jeszcze tylko haed i tail( jednak sensu nie widzę). Tekst ogólnie jest pobierany ze strony internetowej, a nie z pliku. Udało mi sie z tego zrobic także to:
abc
abc2
abc3
abc4
abc5
abc6
abc7
abc8
abc9
abc10
itd.


Może z tego będzie łatwiej zrobić to:
abc abc2 abc3
abc4 abc5 abc6
abc7 abc8 abc9
abc10 itd.

Offline

 

#6  2010-12-30 13:57:57

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: Terminal tr, cut, grep

Podaj może pełną treść tego zadania które masz wykonać, bo na razie błądzimy we mgle. tr, cut, grep, head oraz tail nie potrafią pobrać strony internetowej, więc przy tak zakreślonych warunkach brzegowych zadanie jest niewykonalne. Czegoś nam nie mówisz.

I koniecznie napisz dlaczego mamy za Ciebie odrabiać Twoją pracę domową (gdyby to nie była praca domowa, mógłbyś wykorzystać dowolne narzędzia).

Offline

 

#7  2010-12-30 20:36:04

  Paul87 - Użytkownik

Paul87
Użytkownik
Zarejestrowany: 2010-12-28

Re: Terminal tr, cut, grep

Dlatego nie podałem treści zadania, żeby nie było że ktoś odrabia prace domową za mnie. Po prostu pytanie które zadałem pomogło by mi w wykonaniu tej pracy, którą praktycznie mam ukończoną. Borykam się tylko z tym problemem który opisałem w temacie. Jednak widzę że problem jest nie do rozwiązania.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)