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.

Practise LPIC-1 Exam 101-500