Puncte:0

Comanda Bash sort sortare numerică, sortare câmpuri și dicționar

drapel dk

Puteți explica sortare +0nr -2 +2d Vă rog? Acest exemplu este de la https://www.grymoire.com/Unix/Awk.html Comentariul spune:

# sortare numerică - mai întâi cele mai mari numere
# sortează câmpurile 0 și 1 mai întâi (sortarea începe cu 0)
# urmat de sortarea dicționarului pe câmpurile 2 + 3

Vă rugăm să explicați fiecare argument folosit.

Mulțumiri!

drapel hr
AFAIK că sintaxa este învechită - vezi, de exemplu, [Eroare âsort: nu poate citi: +1: nu există un astfel de fișier sau directorâ](https://unix.stackexchange.com/a/486729/65304)
Logan Lee avatar
drapel dk
@steeldriver, da, dar poți să explici oricum ce înseamnă?
waltinator avatar
drapel it
Citiți `man sort` și `info sort`.
Puncte:1
drapel hr

Aceasta este o sintaxă „tradițională” învechită (sau cel puțin învechită) pentru specificarea valorilor câmpurilor și coloanelor, documentată în sortarea informațiilor:

   Pe sistemele care nu sunt conforme cu POSIX 1003.1-2001, âsortâ acceptă o
sintaxă tradițională origine-zero â+POS1 [-POS2]â pentru specificarea cheilor de sortare.
Comanda tradițională âsort +A.X -B.Yâ este echivalentă cu âsort -k
A+1.X+1,Bâ dacă Y este â0â sau absent, altfel este echivalent cu âsort -k
A+1.X+1,B+1.Yâ.

În exemplul pe care îl citați:

sortare +0nr -2 +2d

există două seturi de specificatori: "+0 -2" și "-2„. Primul are A=0, B=2, Y absent și, prin urmare, este echivalent cu -k0+1,2 adică -k1,2 în indexarea modernă bazată pe 1. Al doilea are A=2 cu amândoi B și Y absent devine drept -k3.

Opțiunile de litere au semnificațiile lor obișnuite, de ex.

   -d, --ordine-dicționar
          luați în considerare doar spațiile libere și caracterele alfanumerice

   -n, --sortare numerică
          comparați în funcție de valoarea numerică a șirului

   -r, --invers
          inversează rezultatul comparațiilor

deci rezultatul este sortarea numerică inversă pe primele două câmpuri, -k1,2nr urmat de sortarea dicționarului pe al treilea câmp (și următorul). -k3d.

The info pagina recomandă să nu folosiți această formă de sintaxă:

   Scripturile destinate utilizării pe gazde standard ar trebui să evite tradiționalele
sintaxă și ar trebui să folosească în schimb â-kâ. De exemplu, evitați âsortare +2â, deoarece
ar putea fi interpretat fie ca âsort ./+2â sau âsort -k 3â. Dacă ale tale
scriptul trebuie să ruleze și pe gazde care acceptă doar sintaxa tradițională,
poate folosi un test precum âif sort -k 1 </dev/null >/dev/null 2>&1; atunci
...â pentru a decide ce sintaxă să folosească.
Puncte:-1
drapel dk

este la fel ca sortează -k1,2nr -k3d.

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.