Archivo de texto
usando sort -s (sensible a mayúsculas y minúsculas)
Act Bad Bag Card East about across back ball camera canvas danger dark early edgeusando sort -f (no distingue entre mayúsculas y minúsculas)
about across Act back Bad Bag ball camera canvas Card danger dark early East edgeLas palabras que comienzan con mayúscula se ordenan alfabéticamente entre las minúsculas.
Lo que quiero es que las palabras en mayúsculas estén al principio de cada letra siguiente (en mayúsculas ordenadas alfabéticamente):
Salida esperada :
Act about across Bad Bag back ball Card camera canvas danger dark East early edge¿Cómo puedo darme cuenta de esto usando el comando de clasificación bash o python?
Este comando lo hará:
LC_ALL=C sort -k 1.1f,1.1 PATH donde PATH es la ruta de su archivo.
Explicación:
sort se ve afectado por la configuración regional actual, por lo que LC_ALL=C se usa para establecer la configuración regional en un valor conocido (la configuración regional POSIX, orden de clasificación basado en valores de código de caracteres ASCII)-k 1.1f,1.1 le dice a sort que use el primer carácter como la clave de clasificación principal sin distinguir entre mayúsculas y minúsculasLa salida es exactamente como se solicita en la pregunta.
¡Me las arreglé para hacerlo! Aquí está (en 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)Producción:
['Act', 'about', 'across', 'Bad', 'Bag', 'back', 'ball', 'Card', 'camera', 'canvas', 'danger', 'dark', 'East', 'early', 'edge']