[+] bash - rozdzielanie kolumn z pliku

Potrzebujesz pomocy z C, C++, perl, python, itp.
blackmetal_x
Posty: 10
Rejestracja: 22 stycznia 2009, 08:16

[+] bash - rozdzielanie kolumn z pliku

Post autor: blackmetal_x »

Witam
Mój problem dotyczy wczytywania danych z pliku.
Chcę by dane:
26:1
28:1
33:0
były rozdzielone w ten sposób, że odczytuje ostatnią kolumnę czyli:
1
1
0
Jakiego polecenia użyć: cat, cut? Jakie parametry pozwolą mi to wyświetlić?
snah
Beginner
Posty: 103
Rejestracja: 19 lutego 2008, 09:09

Post autor: snah »

Można użyć polecenia cut. Jeśli po przeczytaniu man cut oraz ewentualnym zapytaniu się google o przykład będziesz miał dalej problemy, to pytaj.
RaV.
Posty: 87
Rejestracja: 28 czerwca 2006, 15:30
Lokalizacja: 127.0.0.1

Post autor: RaV. »

Chyba trochę kolego blackmetal_x przeginasz... Masz dwa polecenia (jedno z nich jest właściwe) i nie chce Ci się wpisać w konsoli man cat cut? Każde z nich ma jedynie po kilka przełączników. Wnioskuję zatem, że albo jesteś strasznie leniwy, albo nie szanujesz czasu innych, albo jesteś idiotą, albo uważasz innych za idiotów.
Za karę proponuję byś sam znalazł odpowiedź i wpisał tu dla potomnych. Nie zajmie Ci to więcej niż 5 minut.
A jak chcesz się w pełni zrehabilitować to w odpowiedzi uwzględnij programy awk i sed :>

PS. Nie próbuję Cię obrażać, choć zdaję sobie sprawę, że ton mojej wypowiedzi na to wskazuje, tylko uświadomić, że czas innych również jest cenny i ludzie mają co robić niż tłumaczyć innym coś, co wprost jest napisane w podręczniku systemowym i to na pierwszej stronie.

PS2. Tak, wiem że podanie odpowiedzi zajęłoby mi mniej czasu niż napisanie tego elaboratu, ale ani Ty ani następni niczego by się nie nauczyli prócz faktu, że można zadać dowolne pytanie i ktoś odpowie.
blackmetal_x
Posty: 10
Rejestracja: 22 stycznia 2009, 08:16

Post autor: blackmetal_x »

Heh. Leń? Nie będę tłumaczył jaką to ja mam pracę, szefów oraz wielu innych czynników. Owszem są wyjaśnienia, lecz nic się nie nadaje do użycia.

Kod: Zaznacz cały

cat plik | cut -d: -f2
Proszę bardzo, ale dlaczego nie mam dostępu do pliku? Jest cała ścieżka, nazwa pliku poprawna, a tu nic. Brak dostępu do pliku przy wykonywaniu tego polecenia. Plik jest tworzony przez:

Kod: Zaznacz cały

date > plik
więc chyba nie ma to nic wspólnego z prawami?
Nie mam was za idiotów, sam nim nie jestem, szanuję wasz czas ale czy to tak wiele dać odpowiedź? Nigdy nie miałem do czynienia z programowaniem czegokolwiek, bazodanowiec i CMSowiec jestem.
RaV.
Posty: 87
Rejestracja: 28 czerwca 2006, 15:30
Lokalizacja: 127.0.0.1

Post autor: RaV. »

Dobrze. I teraz widzę, że nie idziesz na łatwiznę i pokazałeś, ze coś zrobiłeś a nie czekasz na gotową odpowiedź.
Spróbuj tak:

Kod: Zaznacz cały

cat plik | cut -d\: -f2
Edit:
Co do "Braku dostępu do pliku:
- Co wyrzuca samo

Kod: Zaznacz cały

cat plik
Jeśli nie jest wyrzucana zawartość pliku, podaj wynik polecenia:

Kod: Zaznacz cały

ls -l plik
blackmetal_x
Posty: 10
Rejestracja: 22 stycznia 2009, 08:16

Post autor: blackmetal_x »

A więc cat wyrzuca zawartość pliku, czy może być problem z tym, zże jest ,,data'' w nim?
A po wykonaniu razem z\ command not found :)
RaV.
Posty: 87
Rejestracja: 28 czerwca 2006, 15:30
Lokalizacja: 127.0.0.1

Post autor: RaV. »

Nie wiem, jak wygląda struktura całego pliku, ale może naprowadzi Cię na rozwiązanie wydanie polecenia:

Kod: Zaznacz cały

date;date|cut -f2 -d\:
Które najpierw wyświetli wynik polecenia date a później pokaże, jak będzie wyglądało po przepuszczeniu przez polecenie cut, z parametrami, jak zaproponowałem Ci je wyżej, które rozbije plik na pola rozdzielone dwukropkiem. Cut da Ci wynik taki, jak chciałeś w pierwszym poście w tym wątku. Jeśli w pliku jest coś jeszcze, to efekt będzie się nieco różnił, ale i tak każda linia, która będzie zawierała format danych, jak przedstawiłeś, da w rezultacie drugą kolumnę na konsolę. Patrz Twój pierwszy post w wątku.

EDIT:
Jeśli "\" sprawia kłopot, możesz dwukropek ująć w cudzysłów podwójny lub pojedynczy:

Kod: Zaznacz cały

date;date|cut -f2 -d":"
ODPOWIEDZ