Strona 1 z 1

Jak działa dokładnie wc -l ?

: 21 mar 2016, 22:56
autor: arhetyp
Witam,

bardzo proszę pomóc mi zrozumieć wynik działania poniższego polecenia:

Kod: Zaznacz cały

wc -l < plik.txt > plik.txt
plik.txt np wygląda startowo tak:
linia1
linia2
Zatem wc -l zwraca 2 i potem zapisuje/nadpisuje to ponownie do tego samego pliku plik.txt.

Ja zatem oczekiwałbym, że plik będzie wyglądać: Dlaczego wygląda tak: ?

Będę bardzo wdzięczny - domyślam się, że to jakiś prosty motyw a nie potrafię tego zrozumieć...

Pozdrawiam,
Arek

# thalcave: dodałem tagi :)

Re: Jak działa dokładnie wc -l ?

: 22 mar 2016, 11:18
autor: arhetyp
Bardzo proszę o wyjaśnienie:)

Re: Jak działa dokładnie wc -l ?

: 22 mar 2016, 15:21
autor: thalcave
Spróbuję ci to wyjaśnić.
Spróbuj podejść do polecenia jako całości:

Kod: Zaznacz cały

wc -l < plik.txt > plik.txt
Uruchamiasz polecenie wc z parametrem -l. Do polecenie otwierasz plik plik.txt do odczytu i otwierasz plik plik.txt do nadpisania. Do nadpisania co oznacza, że ten plik automatycznie jest zerowany.
Następnie wc pobiera zawartość plik.txt (czyli nic) i na niej operuje wynikiem czego jest 0.

Polecenie, które działa tak jak chcesz to:

Kod: Zaznacz cały

wc -l < plik.txt >> plik.txt
No ale oryginalna zawartość nie jest nadpisywana ;)

Re: Jak działa dokładnie wc -l ?

: 22 mar 2016, 20:29
autor: arhetyp
Bardzo dziękuję za odpowiedź.

Rozumiem, aczkolwiek jest to póki co dla mnie rozumienie trochę "na słowo" bo nie załapałem jeszcze takiej systemowej logiki myślenia:)

Z tego co piszesz to w ogóle nie da się zrobić takiej operacji jak ja sobie to wyobrażałem bo przykład z >> dodaje ostatni wiersz więc finalnie plik będzie miał 3 linie i wynik będzie zatem 3 a nie jak ja się spodziewałem 1 (czyli jedna linia z liczbą wierszy).

Dziękuję - pewnie będę miał niebawem kolejne pytania.

Przy okazji, czy możesz polecić jakaś książkę w tych tematach?

Pozdrawiam,
Arek

Re: Jak działa dokładnie wc -l ?

: 22 mar 2016, 23:51
autor: thalcave
Chyba najlepsze są jednak artykuły w sieci. Ksiązki z regóły sporo kosztują a jak wychodzą (zwłaszcza po polsku) to są już zdeaktualizowane.

Tak przy okazji to nie bardzo rozumiem sens zliczania wierszy w pliku i nadpisywania ich w jednym czasie.