Strona 1 z 1

Wycinanie pierwszego znaku z linii (Bash)

: 07 sierpnia 2008, 15:53
autor: grze_S
Witam.
Próbuję zrobić polecenie które umożliwiło by mi wycięcie pierwszego znaku z ostatniej linii wyjścia polecenia (potrzebuje go do skryptu), a dokładniej aby po wpisaniu:

Kod: Zaznacz cały

aptitude download cos //pakietu 'cos' nie ma w repozytoriach
otrzymać tylko literkę 'E'.
Całe wyjście wygląda w tym przypadku tak:
Czytanie list pakietów... Gotowe
Budowanie drzewa zależności
Odczyt informacji o stanie... Gotowe
Odczyt dodatkowych informacji o stanie
Inicjalizacja stanów pakietów... Gotowe
Odczyt opisów zadań... Gotowe
E: Nie znaleziono pakietu "cos"
Próbowałem to zrobić przy pomocy polecenia:

Kod: Zaznacz cały

aptitude download cos | grep ^E | cut -b 1
lecz niestety nie działa (otrzymuję całą ostatnią linię; działa jednak przy wyświetlaniu plików poleceniem cat).

Jeśli ktoś mógłby mi pomóc byłbym wdzięczny. ;-)

: 07 sierpnia 2008, 22:51
autor: jedi1
aptitude download cos 2>&1| grep ^E | cut -b 1

aptitude wywala na stderr, pipe dziala dla stdout

: 07 sierpnia 2008, 23:45
autor: grze_S
Dzięki jedi1 :-)
W sumie poradziłem już sobie w inny sposób (wprawdzie gorszy i dłuższy, ale też działa ;-) ): najpierw przekierowałem wyjście błędu aptitude do pliku

Kod: Zaznacz cały

aptitude download cos 2> .plik
a potem potraktowałem to cutem:

Kod: Zaznacz cały

cat .plik | cut -b 1