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ă.