22.3. Changing the sort Field Delimiter
Section 22.2 explained how sort separates a line of input into two or more fields using whitespace (spaces or tabs) as field delimiters. The -t option lets you change the field delimiter to some other character.
For example, if you wanted to sort the login names on your system by the login shell they use, you could issue a command like this:
/etc..wd Section 1.7
% sort -t: +6 /etc/passwd root:SndEKOs9H7YLm:0:1:Operator:/:/bin/bash sys:*:2:2::/:/bin/bash jim:LjKwcUt8l6kZK:2391:1004:Jim O'Callahan:/u/jim:/bin/bash ... bart:2DPD8rCOKBbUu:2665:1004:Bart Buus:/u/bart:/bin/tcsh tap:xY7oeuJ8WxyGO:2943:1004:Tap Bronman:/u/tap:/bin/tcsh
The option -t: tells sort to use a colon as a field separator -- so, in this example, field 0 is the login name, field 1 is the encoded password, field 2 is the user ID number, field 3 is the group ID number, and so on. By this numbering, the login shell is in the sixth field.
Remember that sort numbers fields starting with zero -- this will save you lots of grief. Two consecutive colons indicate a "null" field that still must be counted.
--ML and TOR
Copyright © 2003 O'Reilly & Associates. All rights reserved.