Estoy usando AIX 6.1 ksh shell.
Quiero usar un revestimiento para hacer algo como esto:
cat A_FILE | skip-first-3-bytes-of-the-file
Quiero omitir los primeros 3 bytes de la primera línea; ¿Hay alguna forma de hacer esto?
shell
text-processing
aix
ksh
Alvin SIU
fuente
fuente
dd if=A_FILE bs=1 skip=3
en AIX 6.1En lugar de usar
cat
, puede usartail
como tal:Esto imprimirá todo el archivo, excepto los primeros 3 bytes. Consultar
man tail
para más información.fuente
/usr/xpg4/bin/tail
, al menos en mi máquina. Buen consejo, no obstante!Hace poco necesitaba hacer algo similar. Estaba ayudando con un problema de soporte de campo y necesitaba dejar que un técnico viera diagramas en tiempo real mientras realizaban cambios. Los datos están en un registro binario que crece a lo largo del día. Tengo un software que puede analizar y trazar los datos de los registros, pero actualmente no es en tiempo real. Lo que hice fue capturar el tamaño del registro antes de comenzar a procesar los datos, luego entré en un ciclo que procesaría los datos y cada paso crearía un nuevo archivo con los bytes del archivo que aún no se habían procesado.
fuente
ls
; ¿Has considerado usar enstat -c'%s' "${IFILE}"
lugar de esels|awk
combo? Es decir, suponiendo que GNU coreutils ...Si uno tiene Python en su sistema, puede usar un pequeño script de Python para aprovechar la
seek()
función para comenzar a leer en el enésimo byte de la siguiente manera:Y el uso sería así:
Tenga en cuenta que el recuento de bytes comienza en 0 (por lo tanto, el primer byte es en realidad el índice 0), por lo tanto, al especificar 3, estamos posicionando efectivamente la lectura para comenzar en 3 + 1 = 4to byte
fuente