Skip to content
Advertisement

Bash: Sort text file by bytewise case sensitive sort command or using python sort command

Text File
using sort -s (case sensitive)

JavaScript

using sort -f (Not case sensitive)

JavaScript

The words starting with an uppercase are sorted alphabetically between the lowercase words.

What I want is that the words in uppercase are at the start of each next letter (upercase alphabetically sorted):
Expected output:

JavaScript

How can I realize this using bash or python sort command?

Advertisement

Answer

This command will do it:

JavaScript

where PATH is your file path.

Explanation:

  • sort collation order is affected by the current locale, so LC_ALL=C is used to set the locale to a known value (the POSIX locale, collation order based on ASCII character code values)
  • -k 1.1f,1.1 tells sort to use the first character as the primary sort key in a case-insensitive manner
  • Equal comparisons of the primary key will be resolved by comparing all characters again (this time, in a case-sensitive manner).

The output is exactly as requested in the question.

User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement