¿Qué significa este comando de clasificación? temperatura del gato.txt | ordenar -t$'\t'

¿Qué significa este comando de clasificación? temperatura del gato.txt | ordenar -t$'\t'

En la página de manual de sort, -t se usa para especificar un separador de campo. Sin embargo, no sé qué -t$'\t'significa el formulario.

Respuesta1

Bash cotización ANSI-C. Si envuelve una cadena como esta $'string', se expande con las mismas reglas que la cadena C. En su caso, $'t'se vuelve justo 't', pero si lo fuera $'\t', se convertiría en un carácter de tabulación. Esto es un poco diferente a usar comillas dobles, ya "string"que las comillas dobles permiten la sustitución de bash (por ejemplo, expansión de variables)

Respuesta2

El '$' después de la opción -t se usa para especificar un carácter que usa más de 7 bits para su representación. Por ejemplo, para una nueva línea: '\n', para una pestaña '\t'. Si lo haces así:

sort -t '\t' 

Ordenar probablemente le mostrará un error diciendo que está usando demasiados caracteres porque intenta leer literalmente '\' y 't'.

Por lo tanto, en su ejemplo, se omite la barra invertida.

Es lo mismo, por ejemplo, con el comando cortar:

cut -d$'\t' 

información relacionada