formatowanie wyniku polecenia (tekst)

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
aksnet
Posty: 53
Rejestracja: 25 maja 2013, 13:44
Lokalizacja: ifb0

formatowanie wyniku polecenia (tekst)

Post autor: aksnet » 03 października 2017, 10:26

Witam

pewnie polecenie zwraca mi wynik w postaci:

Kod: Zaznacz cały

no;flooding_bridge_port_enable;bp15;bp14;bp13;bp12;bp11;bp10;bp9;bp8;bp7;bp6;bp5;bp4;bp3;bp2;bp1;bp0;bc_meter_enable;bc_meter_id;mc_meter_enable;mc_meter_id;uuc_meter_enable;uuc_meter_id
0;49;127;127;127;127;127;127;127;127;127;127;4;2;127;127;127; ; ; ; ; ; ;
1;112;127;127;127;127;127;127;127;127;127;6;3;1;127;127;127;127; ; ; ; ; ;
2; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
3; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
4; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
5; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
6; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
7; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
Chciałbym sformatować ten wynik tak aby dane były jedne pod drugimi w kolumnach (łatwiejsze do odczytu przez człowieka)

jest do tego jakiś program/metoda która to sformatuje, czy muszę w tym celu napisać skrypt?


Drugie pytanie niezwiązane z tematem
Chciałbym napisać skrypt do którego zostanie przekazany wynik polecenia
np. w taki sposób:

Kod: Zaznacz cały

ls | skrypt.sh
w jaki w sposób w skrypt.sh odczytać to co zostało przekazane/przekierowane z ls?

Awatar użytkownika
dedito
Moderator
Posty: 2984
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: formatowanie wyniku polecenia (tekst)

Post autor: dedito » 03 października 2017, 10:49

Sposobów jest wiele.
Formatowanie wyników wskazuje, że średnik jest używany do separacji komórek z danymi.
Dane można zaciągnąć do excela czy innego programu kalkulacyjnego.
Do bardziej ludzkiego podglądu w konsoli/terminalu można spróbować średniki zmienić na tabulatory (np. przy pomocy sed).
Można też użyć awk, który sam sformatuje dane w kolumny.

Na drugie pytanie załóż osobny wątek.

Awatar użytkownika
aksnet
Posty: 53
Rejestracja: 25 maja 2013, 13:44
Lokalizacja: ifb0

Re: formatowanie wyniku polecenia (tekst)

Post autor: aksnet » 03 października 2017, 10:52

Potrzebuję to sformatować na Linuksie w trybie tekstowym. Excell odpada.

Awatar użytkownika
dedito
Moderator
Posty: 2984
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: formatowanie wyniku polecenia (tekst)

Post autor: dedito » 03 października 2017, 10:56

Na Linuksie też są "excele", pisałem o dowolny edytorze kalkulacyjnym, który potrafi importować dane z plików.
Do trybu tekstowego (jak mnieniam chodzi o terminal) masz już wskazówki w poprzedniej wiadomości.

Awatar użytkownika
aksnet
Posty: 53
Rejestracja: 25 maja 2013, 13:44
Lokalizacja: ifb0

Re: formatowanie wyniku polecenia (tekst)

Post autor: aksnet » 03 października 2017, 11:08

Dokładnie chodzi o openwrt. Tu nie zainstalujesz excella :)

To musi być robione skryptem.

Awatar użytkownika
dedito
Moderator
Posty: 2984
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: formatowanie wyniku polecenia (tekst)

Post autor: dedito » 03 października 2017, 11:12

Niekoniecznie skryptem, jak już pisałem wynik można przekierować do awk lub sed.
Można sobie nawet stworzyć do tego odpowiedni alias, żeby nie klepać za każdym razem "tasiemców".
Oczywiście skrypt też można zrobić, ale dla jednej linijki robienie skryptu w moim odczuciu jest jak wytaczanie armaty żeby ustrzelić muchę.

Awatar użytkownika
aksnet
Posty: 53
Rejestracja: 25 maja 2013, 13:44
Lokalizacja: ifb0

Re: formatowanie wyniku polecenia (tekst)

Post autor: aksnet » 03 października 2017, 11:20

Zamiana średników na tabulatory nie rozwiązuje sprawy.
Niektóre nazwy są na tyle długie, że kolumny się rozjeżdżają.

może podasz jakiś przykład z awk? (albo jak do tego podejść z poziomu awk)

Awatar użytkownika
dedito
Moderator
Posty: 2984
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: formatowanie wyniku polecenia (tekst)

Post autor: dedito » 03 października 2017, 11:23

Awk umożliwia sterowanie szerokościami kolumn (patrz manual lub link).
https://www.gnu.org/software/gawk/manua ... mples.html

ODPOWIEDZ