文字档案
使用sort -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
以大写字母开头的单词在小写单词之间按字母顺序排序。
我想要的是大写的单词是在每个下一个字母的开头(按字母顺序排序的upercase):
预期输出:
Act
about
across
Bad
Bag
back
ball
Card
camera
canvas
danger
dark
East
early
edge
如何使用bash或python sort命令实现这一点?
答案 0 :(得分:7)
此命令将执行此操作:
LC_ALL=C sort -k 1.1f,1.1 PATH
其中PATH
是您的文件路径。
说明:
sort
归类顺序受当前语言环境的影响,因此LC_ALL=C
用于将语言环境设置为已知值(POSIX语言环境,基于ASCII字符代码值的归类顺序)-k 1.1f,1.1
告诉sort
以不区分大小写的方式使用第一个字符作为主要排序键输出完全符合问题的要求。
答案 1 :(得分:3)
我设法做到了!这是(在Python中):
import string
words = [...]
newwords = sorted(words, key=lambda x: [ord(y) if y in string.lowercase else ord(y.lower()) - 0.5 for y in x])
print(newwords)
输出:
['Act', 'about', 'across', 'Bad', 'Bag', 'back', 'ball', 'Card', 'camera', 'canvas', 'danger', 'dark', 'East', 'early', 'edge']