A file contains one plain integer per line. Sorting it with plain `sort` produces the order 1, 10, 2, 20, 3. Which option makes sort order the numbers by value?
LPIC-1 Exam 101-500, objective 103. GNU and Unix commands medium
Draft — not checked yet. This question was written from the published exam objectives and cites the clause it comes from, but nobody has yet read it against that clause and signed for it.
It is kept out of search results and out of mock exams until they have. Read the source below before you take the answer as settled.
The options
Not correct sort -f
Wrong. -f folds case, treating lowercase and uppercase as equal. Digits have no case, so the comparison stays lexical and the order does not change at all.
Correct sort -n
Correct. -n compares the leading numeric string as a number, giving 1, 2, 3, 10, 20.
Not correct sort -u
Wrong. -u suppresses duplicate lines in the output. The ordering stays the default lexical one.
Not correct sort -r
Wrong. -r only reverses the sort order; on lexical input it gives 3, 20, 2, 10, 1.
Why
By default sort compares lines as text, so "10" sorts before "2" because "1" precedes "2" character by character. -n is numeric, -r reverses, -u removes duplicates, -f folds case, and -k selects the field to compare on. These combine, so `sort -nr` is the usual descending numeric sort. GNU sort also has -h, human-numeric sort, which understands SI suffixes such as 2K, 512M, 1G — it would order plain integers correctly too, but -n is the option meant for them.
Where this comes from
- Cited
- LPI exam objective 103.2
- What it says
- Sort text streams, including numeric and reverse ordering.
Practise this
Reading one question is not practice. The trainer will draw a set from objective 103 and space the ones you get wrong.