Wycinanie pierwszego znaku z linii (Bash)

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
grze_S
Beginner
Posty: 133
Rejestracja: 02 grudnia 2007, 12:30

Wycinanie pierwszego znaku z linii (Bash)

Post 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. ;-)
jedi1
Posty: 46
Rejestracja: 08 maja 2007, 17:08
Lokalizacja: Gdynia

Post autor: jedi1 »

aptitude download cos 2>&1| grep ^E | cut -b 1

aptitude wywala na stderr, pipe dziala dla stdout
Awatar użytkownika
grze_S
Beginner
Posty: 133
Rejestracja: 02 grudnia 2007, 12:30

Post 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
ODPOWIEDZ