[Bash] polecenie cut

0

Poleceniem ls -l wyswietlilam interesujaca mnie zawartosc i wpisalam ją do pliku tekstowego. Później próbowałam poleceniem cut wyciąć 5 kolumnę więc wyglądało to tak
cut - f5 lsl.txt > kol5.txt

Niestety zawartość nowego pliku to nadal to cała lista z polecenia ls -l.

Zgodnie z przykładem w skrypcie powinno działać. Co robię nie tak?

1

Strzelam, że pliku lsl.txt masz złe separatory. Domyślnie jest to tab. Zrób sobie dowolny plik z kolumnami oddzielonymi tabami i zobaczysz, że działa.

2

Samo podanie separatora jako spacji nie pomoże, bo czasem występuje więcej spacji niż jedna. Można się wspomóc tr:

tr -s ' ' < lsl.txt | cut -d" " -f5

Albo opcjonalnie użyć awk:

awk '{print $5}' lsl.txt
0

cut to bardzo toporne narzędzie. Lepiej poświęcić chwilę na AWK:

ls -l | awk '{print $5}'
0

@szweszwe: Niestety utworzenie innego pliku z kolumnami nie pomogło. Polecenie nadal nie działało. Ostatecznie musiałam zrobić nie na całych kolumnach a na kolejnych symbolach (czyli np. jeśli w kolumnach było po 4 znaki a interesowała mnie 4 kolumna to musiałam wpisać zakres od 16 do 20).

@Pyxis @elwis dzięki sprawdzę ale nie wiem czy będę mogła używać na zaliczeniu jeśli tego nie przerabialiśmy :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1