Este es el comando tablifyp que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
tablify: convierte un archivo de texto delimitado en una tabla de texto
SINOPSIS
tablificar archivo de [opciones]
Opciones:
-h | --help Mostrar ayuda
-c | --comment Define el comienzo de un comentario (de una sola línea)
-n | --no-headers Suponga que la primera línea son datos, no encabezados
--no-pager No use $ ENV {'PAGER'} incluso si está definido
--strip-quotes Franja "o 'alrededor de los campos
-l | --list Muestra los campos en el archivo (para usar con -f)
-f | --fields = f1 [, f2] Muestra solo los campos en una lista separada por comas;
cuando se usa junto con "sin encabezados"
la lista debe contener números de campo (comenzando en 1);
de lo contrario, deberían ser nombres de campo
-w | donde = f v Aplicar el operador de Perl "cmp" para restringir la salida
donde el campo "f" coincide con el valor "v"; aceptable
los operadores incluyen ==, eq,>,> =, <= y = ~
-v | --vertical Muestra los registros verticalmente
-i | --limit = n Límite al número dado de registros
--fs = x Utilice "x" como separador de campo
(la pestaña predeterminada es "\ t")
--rs = x Utilice "x" como separador de registros
(el valor predeterminado es nueva línea "\ n")
--as-html Crea una tabla HTML en lugar de texto sin formato
- encabezados Lista de nombres que coinciden separados por comas
el número de columnas
DESCRIPCIÓN
Este script es esencialmente una forma rápida de analizar un archivo de texto delimitado y verlo como un
bonita tabla ASCII. Seleccionando solo ciertos campos, empleando un donde cláusula para solo
seleccionar registros donde un campo coincide con algún valor, y usando el límitar para ver solo algunos de
Como resultado, casi tiene un front-end de mini-base de datos para un archivo de texto simple.
EJEMPLOS
Dado un archivo de datos como este:
nombre, rango, serial_no, is_living, age
George, General, 190293,0,64
Dwight, General, 908348,0,75
Atila, Hun ,, 0,56
Tojo, Emporor ,, 0,87
Tommy, General, 998110,1,54
Para encontrar los campos a los que puede hacer referencia, utilice el lista opción:
$ tablify --fs ',' -l people.dat
+ ----------- + ----------- +
| Número de campo | Campo |
+ ----------- + ----------- +
| 1 | nombre |
| 2 | rango |
| 3 | número de serie |
| 4 | está_viviendo |
| 5 | edad |
+ ----------- + ----------- +
Para extraer solo el nombre y los números de serie, utilice el campos opción:
$ tablify --fs ',' -f nombre, serial_no people.dat
+ -------- + ----------- +
| nombre | serial_no |
+ -------- + ----------- +
| Jorge | 190293 |
| Dwight | 908348 |
| Atila | |
| Tojó | |
| tommy | 998110 |
+ -------- + ----------- +
5 registros devueltos
Para extraer el primer al tercer campo y el quinto campo (donde comienzan los números de campo
en "1" - consejo: utilice el lista opción para determinar rápidamente los números de campo), use esta sintaxis
para campos:
$ tablify --fs ',' -f 1-3,5 personas.dat
+ -------- + --------- + ----------- + ------ +
| nombre | rango | serial_no | edad |
+ -------- + --------- + ----------- + ------ +
| Jorge | generales | 190293 | 64 |
| Dwight | generales | 908348 | 75 |
| Atila | huno | | 56 |
| Tojó | Emperador | | 87 |
| tommy | generales | 998110 | 54 |
+ -------- + --------- + ----------- + ------ +
5 registros devueltos
Para seleccionar solo los que tienen seis números de serie, utilice un donde cláusula:
$ tablify --fs ',' -w 'serial_no = ~ / ^ \ d {6} $ /' people.dat
+ -------- + --------- + ----------- + ----------- + ------ +
| nombre | rango | serial_no | is_living | edad |
+ -------- + --------- + ----------- + ----------- + ------ +
| Jorge | generales | 190293 | 0 | 64 |
| Dwight | generales | 908348 | 0 | 75 |
| tommy | generales | 998110 | 1 | 54 |
+ -------- + --------- + ----------- + ----------- + ------ +
3 registros devueltos
Para encontrar el registro de Dwight, haría esto:
$ tablify --fs ',' -w 'nombre eq "Dwight"' people.dat
+ -------- + --------- + ----------- + ----------- + ------ +
| nombre | rango | serial_no | is_living | edad |
+ -------- + --------- + ----------- + ----------- + ------ +
| Dwight | generales | 908348 | 0 | 75 |
+ -------- + --------- + ----------- + ----------- + ------ +
1 registro devuelto
Para encontrar el nombre de todas las personas con número de serie que viven:
$ tablify --fs ',' -f name -w 'is_living == 1' -w 'serial_no> 0' people.dat
+ ------- +
| nombre |
+ ------- +
| tommy |
+ ------- +
1 registro devuelto
Para filtrar fuera del programa y simplemente formatear los resultados, use "-" como último argumento
para forzar la lectura de STDIN (y probablemente no asumir encabezados):
$ grep General people.dat | tablify --fs ',' -f 1-3 --no-headers -
+ --------- + -------- + -------- +
| Campo1 | Campo2 | Campo3 |
+ --------- + -------- + -------- +
| generales | 190293 | 0 |
| generales | 908348 | 0 |
| generales | 998110 | 1 |
+ --------- + -------- + -------- +
3 registros devueltos
Cuando se trata de datos que carecen de nombres de campo, puede especificar "sin encabezados" y luego consultar
campos por número (comenzando en uno), por ejemplo:
$ tail -5 people.dat | tablify --fs ',' --no-headers -w '3 eq "General"' -
+ -------- + --------- + -------- + -------- + -------- +
| Campo1 | Campo2 | Campo3 | Campo4 | Campo5 |
+ -------- + --------- + -------- + -------- + -------- +
| Jorge | generales | 190293 | 0 | 64 |
| Dwight | generales | 908348 | 0 | 75 |
| tommy | generales | 998110 | 1 | 54 |
+ -------- + --------- + -------- + -------- + -------- +
3 registros devueltos
Si su archivo tiene muchos campos que son difíciles de ver en la pantalla, considere usar el
visualización vertical con "-v" o "--vertical", por ejemplo:
$ tablify --fs ',' -v --limit 1 people.dat
************ Registro 1 ************
nombre: George
rango: General
número de serie: 190293
es_viviendo: 0
edad: 64
1 registro devuelto
Use tablifyp en línea usando los servicios de onworks.net