O comando Linux Column funciona con ficheiros de texto delimitados
Pode mostrar un ficheiro delimitado no terminal Linux para que cada elemento delimitado se amose dentro da súa propia columna. Por exemplo, aquí hai un exemplo da táboa de fútbol da Premier League inglesa que usa tubos como delimitadores.
pos | equipo | pld | pts 1 | leicester | 31 | 66 2 | tottenham | 31 | 61 3 | arsenal | 30 | 55 4 | cidade do home | 30 | 51 5 | xamón do oeste | 30 | 50 6 | home utd | 30 | 50 7 | surampton | 31 | 47 8 | stoke city | 31 | 46 9 | Liverpool | 29 | 44 10 | Chelsea | 30 | 41Esta lista inclúe os 10 mellores equipos, os seus nomes, o número de xogos que xogaron e os puntos marcados.
Existen varios comandos de Linux que pode usar para amosar os datos na liña de comandos. Por exemplo, o comando cat mostra o ficheiro exactamente como aparece no ficheiro. O comando de cola pode usarse para mostrar unha porción do ficheiro ou todo, como pode o comando principal . Non obstante, ningún destes comandos mostra a saída dun xeito que o faga bo aspecto.
Idealmente, quere poder ver os datos sen o símbolo de canalización e separarse. Aquí é onde entra o comando da columna .
Uso básico do comando de columna
Pode executar o comando column sen ningún parámetro como segue:
columnaIsto funciona mellor con ficheiros de palabras con espazos entre as palabras. tampouco funciona con datos tabulares como neste exemplo da táboa de liga.
A saída é a seguinte:
pos | equipo | pld | pts 2 | tottenham | 31 | 61 4 | cidade do home | 30 | 51 6 | home utd | 30 | 50 8 | stoke city | 31 | 46 10 | Chelsea | 30 | 41 1 | leicester | 31 | 66 3 | arsenal | 30 | 55 5 | xamón oeste | 30 | 50 7 | surampton | 31 | 47 9 | liverpool | 29 | 44
Especificando o ancho da columna
Se coñeces os anchos das columnas, podes empregar o seguinte comando para separar a columna por ancho:
columna -cPor exemplo, se coñeces o ancho de cada columna hai 20 caracteres pode usar o seguinte comando:
columna -c20No caso da táboa de liga, isto non funciona ben a menos que todas as columnas teñan un ancho determinado. Para probar isto, modifique o ficheiro da táboa da liga como segue:
pos team pld pts 1 leicester 31 66 2 tottenham 31 61 3 arsenal 30 55 4 home city 30 51 5 west ham 30 50 6 home utd 30 50 7 so'ton 31 47 8 stoke 31 46 9 liverpool 29 44 10 chelsea 30 41Agora, usando o seguinte comando, pode obter unha saída decente:
columna -c10 ligatableO problema con isto é que os datos do ficheiro xa estaban ben, polo que os comandos de cola, cabeza, nano ou cat poderían mostrar a mesma información dun xeito aceptable.
Especificación de separadores usando o comando de columna
A mellor forma de usar o comando de columna en coma, canalización ou outros ficheiros delimitados é a seguinte:
columna -s "|" -tA opción -s permite determinar o delimitador a empregar. Por exemplo, se o ficheiro está separado por comas, pode pór "," despois do -s. O switch -t mostra os datos nun formato tabular.
Separadores de saída
Ata agora, este exemplo mostrou como traballar co delimitador dun ficheiro de entrada, pero que hai dos datos cando se mostra na pantalla.
O valor predeterminado de Linux é de dous espazos, pero quizais queres empregar dúas columnas. O seguinte comando mostra como especificar un separador de saída:
columna -s "|" -t -o "::"Cando se usa co ficheiro da táboa de liga, o comando produce a seguinte saída:
pos :: equipo :: pld :: pts 1 :: leicester :: 31 :: 66 2 :: tottenham :: 31 :: 61 3 :: arsenal :: 30 :: 55 4 :: home cidade :: 30 :: 51 5 :: oeste de xamón :: 30 :: 50 6 :: home utd :: 30 :: 50 7 :: southampton :: 31 :: 47 8 :: stoke city :: 31 :: 46 9 :: liverpool :: 29 :: 44 10 :: Chelsea :: 30 :: 41Encha filas antes das columnas
Hai outro cambio que non é particularmente útil, pero aquí inclúese para completar. O interruptor -x cando se usa co botón -c enche as filas antes das columnas.
Entón, que significa isto? Mire o seguinte exemplo:
columna -c100 ligatableA saída deste sería o seguinte:
pos | equipo | pld | pts 3 | arsenal | 30 | 55 6 | home utd | 30 | 50 9 | liverpool | 29 | 44 1 | leicester | 31 | 66 4 | cidade do home | 30 | 51 7 | surampton | 31 | 47 10 | Chelsea | 30 | 41 2 | tottenham | 31 | 61 5 | oeste de xamón | 30 | 50 8 | stoke city | 31 | 46
Como podes ver, baixa primeiro e despois cruza.
Agora mira este exemplo:
columna -c100 -x ligatableNesta ocasión a saída é a seguinte:
pos | equipo | pld | pts 1 | leicester | 31 | 66 2 | tottenham | 31 | 61 3 | arsenal | 30 | 55 4 | cidade do home | 30 | 51 5 | xamón do oeste | 30 | 50 6 | home utd | 30 | 50 7 | surampton | 31 | 47 8 | stoke city | 31 | 46 9 | Liverpool | 29 | 44 10 | Chelsea | 30 | 41
Os datos cruzan a pantalla e despois baixan.
Outros interruptores
Os únicos outros interruptores dispoñibles son os seguintes:
columna -VIsto amosa a versión da columna instalada no seu computador.
columna --helpIsto amosa a páxina de manual na xanela do terminal.