As man sort says, “dictionary-order” means
“consider only blanks and alphanumeric characters”.
For example, given the data
The
!quick
brown
@fox
jumps
#over
17
$lazy
dogs
%42
times.
the unadorned sort command produces
dogs
!quick
#over
$lazy
%42
@fox
17
brown
jumps
The
times.
(putting the lines that begin with the space characters
and the !, #, $, %, and @ symbols1
ahead of the lines that begin with letters and numbers;
i.e., alphanumeric characters), but sort -d produces
dogs
17
%42
brown
@fox
jumps
$lazy
#over
!quick
The
times.
dogs is still first, because it begins with spaces,
but the special (punctuation) characters are ignored.
17 comes before 42, and fox comes between brown and jumps,
in spite of the fact that 42 and fox have characters in front of them
that would normally move them before the 17.
____________
1 in order of their ASCII values:
space=040, !=041, #=043, $=044, %=045, and @=0100.
Note that (disregarding the space bar)
this is approximately left-to-right order on some keyboards.