Tengo archivos de texto de varias líneas de datos (a veces) delimitados por tabuladores. Me gustaría generar el archivo para poder echarle un vistazo, por lo que me gustaría ver solo los primeros 80 caracteres de cada línea (diseñé el archivo de texto para poner primero las cosas importantes en cada línea).
Pensé que podría usar cat para leer cada línea del archivo y enviar cada línea al siguiente comando en una tubería:
cat tabfile | cut -c -80
Pero eso parecía roto. Intenté hacer un poco de juego, y grep parecía funcionar, pero luego descubrí que no, no lo hizo (no todas las líneas del archivo tenían más de 80 caracteres), parece que las pestañas se cuentan como caracteres individuales por corte.
Lo intenté:
cat tabfile | tr \t \040 | cut -c -80
Aunque eso alteraría un poco mis datos, al eliminar la legibilidad de los espacios en blanco. Pero eso no funcionó. Tampoco lo hizo:
cat tabfile | tr \011 \040 | cut -c -80
Tal vez estoy usando tr mal? He tenido problemas con tr antes, queriendo eliminar múltiples espacios (parece que la versión de tr a la que tengo acceso en esta máquina tiene una opción -s para apretar varios caracteres; es posible que deba jugar más)
Estoy seguro de que si me equivoco podría usar perl, awk o sed, o algo para hacer esto.
Sin embargo, me gustaría una solución que utilice comandos regulares (POSIX?), Para que sea lo más portátil posible. Si termino usando tr, probablemente intente convertir las pestañas en caracteres, tal vez haga un cálculo, corte el cálculo y luego vuelva a convertir esos caracteres en pestañas para la salida.
No necesita ser una sola línea / ingresada directamente en la línea de comando; un script está bien.
Más información sobre archivos de pestañas:
Utilizo la pestaña para dividir campos, porque algún día querré importar datos en algún otro programa. Así que tiendo a tener solo una pestaña entre las piezas de contenido. Pero también utilizo pestañas para alinear cosas con columnas verticales, para ayudar en la legibilidad al mirar el archivo de texto sin formato. Lo que significa que, para algunos fragmentos de texto, relleno el final del contenido con espacios hasta llegar a donde funcionará la pestaña para alinear el siguiente campo con los que están arriba y debajo.
DarkTurquoise # 00CED1 Mares, cielos, botes de remos Naturaleza MediumSpringGreen # 00FA9A Útil para árboles Magic Lima # 00FF00 Solo para uso en pollos de primavera y fru $
pr
de coreutils
: pr -1 -t -l200 -W80 file
. Aumente / disminuya la longitud de la página (número después -l
) según su necesidad.