Nowe posty

Autor Wątek: podział wyniku komendy na nowe linie.  (Przeczytany 3000 razy)

marti_btf

  • Gość
podział wyniku komendy na nowe linie.
« dnia: 2016-07-12, 13:25:54 »
Witajcie, mam pewien problem i nie bardzo wiem jak sobie z nim poradzić a mianowicie:

Mam polecenie:

grep Poprawnosc_wykonania_backupu: log.txt -A1 | tail -n1

zwraca mi on cos takiego:

nazwa02test001: OK nazwa01lnx001: FAIL nazwa001ncx002:OK

Chciałbym aby wynik wygladał nastepująco:
nazwa02test001: OK
nazwa01lnx001: FAIL
nazwa001ncx002:OK

Niestety nie bardzo wiem jak to ugryźć... pewnie jakieś wyrażenie regularne lub może sed... ale póki co nic nie wymyslilem co choć o krok by mnie przybliżlo do oczekiwanej przeze mnie formy.



marti_btf

  • Gość
Odp: podział wyniku komendy na nowe linie.
« Odpowiedź #1 dnia: 2016-07-12, 14:36:10 »
Hmm chyba udało mi sie rozwiązać problem:

grep Poprawnosc_wykonania_backupu: log.txt -A3| tail -n1| awk '{print $1,$2 "\n" $3,$4 "\n" $5,$6 }'
« Ostatnia zmiana: 2016-07-12, 15:08:00 wysłana przez marti_btf »

Offline marcin'82

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 404
    • Zobacz profil
Odp: podział wyniku komendy na nowe linie.
« Odpowiedź #2 dnia: 2016-07-12, 16:34:55 »
Spróbuj jeszcze:
grep Poprawnosc_wykonania_backupu: log.txt -A1 | tail -n1 | xargs -n 2

man xargs
marcin82

marti_btf

  • Gość
Odp: podział wyniku komendy na nowe linie.
« Odpowiedź #3 dnia: 2016-07-13, 12:37:41 »
Dziekuje w wolnej chwili sie wczytam w xargs :)

marti_btf

  • Gość
Odp: podział wyniku komendy na nowe linie.
« Odpowiedź #4 dnia: 2016-07-13, 12:44:16 »
Aktualnie mam kolejny problem :) :

Vhosty=`grep Poprawnosc_wykonania_backupu: $hosty -A3| tail -n1| awk '{print $1 "\n" $3 "\n" $5 }'`

Czy da sie zapisać jakoś w pętli powyższą komendę, tak aby część awk '{print $1 "\n" $3 "\n" $5 }' sama sie rozszerzała (wg powyższego wzorca) w zależności od tego ile będzie "kolumn" dla danego $hosta???



Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: podział wyniku komendy na nowe linie.
« Odpowiedź #5 dnia: 2016-07-13, 21:17:43 »
Zlituj się i wklej kawałek tego, co grepujesz w tagi [ code ], bo się jeszcze miesiąc będziemy ganiać...
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

marti_btf

  • Gość
Odp: podział wyniku komendy na nowe linie.
« Odpowiedź #6 dnia: 2016-07-14, 08:14:29 »
To co jest w zmiennej $hosty  wyglada tak :
Nazwa_hosta:
avn02test001
Data_sprawdzenia:
07-08-2016_1026
Zajete_miejsce:
/datastore1 98%
Poprawnosc_wykonania_backupu:
avn02test001: OK avn01lnx001: FAIL avn05ncx002:OK

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: podział wyniku komendy na nowe linie.
« Odpowiedź #7 dnia: 2016-07-14, 11:49:00 »
VHOSTY=$(echo "$hosty" | tail -n1 | sed -e 's/:\s*/:/g' -e 's/ /\n/g')

wynik:

avn02test001:OK
avn01lnx001:FAIL
avn05ncx002:OK
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

marti_btf

  • Gość
Odp: podział wyniku komendy na nowe linie.
« Odpowiedź #8 dnia: 2016-07-14, 12:24:10 »
Super, dziekuje, pomogło :) .

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: podział wyniku komendy na nowe linie.
« Odpowiedź #9 dnia: 2016-07-14, 12:53:21 »
Pomogło, ale to leczenie objawu, nie przyczyny. Bardziej przydatne byłoby poprawienie skryptu generującego te dane tak, aby je łatwiej parsować.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

marti_btf

  • Gość
Odp: podział wyniku komendy na nowe linie.
« Odpowiedź #10 dnia: 2016-07-14, 12:55:16 »
Zdaję sobie z tego sprawę, niestety muszę mierzyć siły na zamiary ;) ale oczywiscie jak już wszystko zadziała bede chciał to zoptymalizować ewentualnie zmienić parę rzeczy.