文本文件
使用排序-s
(区分大小写)
Act
Bad
Bag
Card
East
about
across
back
ball
camera
canvas
danger
dark
early
edge
使用 sort -f(不区分大小写)
about
across
Act
back
Bad
Bag
ball
camera
canvas
Card
danger
dark
early
East
edge
以大写字母开头的单词在小写单词之间按字母顺序排序。
我想要的是大写单词位于每个下一个字母的开头(按大写字母顺序排序):
预期输出:
Act
about
across
Bad
Bag
back
ball
Card
camera
canvas
danger
dark
East
early
edge
如何使用 bash 或 python sort 命令实现这一点?
最佳答案
这个命令可以做到:
LC_ALL=C sort -k 1.1f,1.1 PATH
PATH
是您的文件路径。
解释:
sort
整理顺序受当前语言环境影响,因此LC_ALL=C
用于将语言环境设置为已知值(POSIX 语言环境,整理顺序基于ASCII 字符代码值)-k 1.1f,1.1
告诉sort
以不区分大小写的方式使用第一个字符作为主要排序键- 主键的相等比较将通过再次比较所有字符来解决(这次以区分大小写的方式)。
输出完全符合问题中的要求。
关于python - Bash:按字节区分大小写的排序命令或使用 python 排序命令对文本文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35669702/