Bash:按字节顺序区分大小写的排序命令或使用python sort命令对文本文件进行排序

Rem*_*man 4 python linux sorting bash case


使用sort -s的文本文件 (区分大小写)

Act
Bad
Bag
Card
East
about
across
back
ball
camera
canvas
danger
dark
early
edge
Run Code Online (Sandbox Code Playgroud)

使用sort -f(不区分大小写)

about
across
Act
back
Bad
Bag
ball
camera
canvas
Card
danger
dark
early
East
edge
Run Code Online (Sandbox Code Playgroud)

以大写字母开头的单词在小写单词之间按字母顺序排序.

我想要的是大写的单词是在每个下一个字母的开头(按字母顺序排序的upercase):
预期输出:

Act
about
across
Bad
Bag
back
ball
Card
camera
canvas
danger
dark
East
early
edge
Run Code Online (Sandbox Code Playgroud)

如何使用bash或python sort命令实现这一点?

ise*_*dev 7

这个命令会这样做:

LC_ALL=C sort -k 1.1f,1.1 PATH
Run Code Online (Sandbox Code Playgroud)

PATH你的文件路径在哪里.

说明:

  • sort归类顺序受当前语言环境的影响,因此LC_ALL=C用于将语言环境设置为已知值(POSIX语言环境,基于ASCII字符代码值的归类顺序)
  • -k 1.1f,1.1告诉我们sort以不区分大小写的方式使用第一个字符作为主要排序键
  • 通过再次比较所有字符(此时,以区分大小写的方式)来解决主键的相等比较.

输出完全符合问题的要求.