Puncte:1

zsh: înțelegerea ieșirii comenzii de la wc și transmiterea acesteia către alte comenzi

drapel gq

Încerc să creez o comandă complexă (folosind substituții de shell și expresii aritmetice) și mă întrebam dacă cineva m-ar putea ajuta să înțeleg rezultatul WC comanda.

De exemplu, iată câteva exemple:

[11:10:33] labreu:~ $ wc -l test.txt
5 test.txt
[11:10:40] labreu:~ $ cat test.txt| wc -l
5

De ce comanda returnează valori diferite? Am încercat să mă uit la pagina sa de manual, dar nu există nimic acolo...

Btw, întreb doar despre asta pentru că încercam să omit x linii dintr-un fișier cu următoarea comandă:

[11:25:35] labreu:~ $ tail -n "+$(( $(wc -l test.txt)-2 ))" test.txt                       
zsh: expresie matematică greșită: operator așteptat la `test.txt-2...'

După ce a observat că WC se intoarce nume_fișier numărul_de_linii și că utilizarea conductelor (sau redirecționarea produce un rezultat diferit), am reușit să obțin ceea ce aveam nevoie folosind ceva de genul acesta:

coada -n "+$(( $(wc -l<test.txt )-2 ))" test.txt

coada -n „+$(( $(cat test.txt | wc -l )-2 ))” test.txt 

Oricum, întrebarea principală rămâne: de ce WC comanda returnează o ieșire diferită atunci când este utilizată într-o conductă (sau cu redirecționare de intrare)?

Mulțumiri

Puncte:0
drapel cn

Prima metodă pe care o utilizați pe linia de comandă. A doua metodă poate fi folosită la codificare.

Comanda în sine poate face acest lucru pentru mai mult de 1 fișier, așa că trebuie să vă spună ce cantitate de linii aparține fiecărui fișier.

$ wc -l *.xml
   712 1.xml
  3055 2.xml
   464 3.xml
  3055 4.xml

wc -l în sine nu distinge între 1 fișier, un wildcard sau mai multe fișiere. Să o fac fără numele pe care tind să-l folosesc wc -l < ​​fișier.txt deci cu o redirecționare.

Metoda de concatenare/versiunea pipetă este întotdeauna 1 fișier, așa că numele fișierului este implicit. O buclă for ar implica totuși 1 fișier per wc -l dar repetând același lucru de mai multe ori.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.