Estou usando o shell do AIX 6.1 ksh.
Eu quero usar um forro para fazer algo assim:
cat A_FILE | skip-first-3-bytes-of-the-file
Eu quero pular os 3 primeiros bytes da primeira linha; existe uma maneira de fazer isso?
shell
text-processing
aix
ksh
Alvin SIU
fonte
fonte
dd if=A_FILE bs=1 skip=3
no AIX 6.1Em vez de usar,
cat
você pode usartail
como tal:Isso imprimirá o arquivo inteiro, exceto os 3 primeiros bytes. Consulte
man tail
para mais informações.fonte
/usr/xpg4/bin/tail
, pelo menos na minha máquina. Boa dica, no entanto!Eu precisava fazer recentemente algo semelhante. Eu estava ajudando com um problema de suporte de campo e precisava deixar um técnico ver gráficos em tempo real enquanto fazia alterações. Os dados estão em um log binário que cresce ao longo do dia. Eu tenho um software que pode analisar e plotar os dados dos logs, mas atualmente não é em tempo real. O que fiz foi capturar o tamanho do log antes de começar a processar os dados e, em seguida, entrar em um loop que processaria os dados e cada passagem criaria um novo arquivo com os bytes do arquivo que ainda não haviam sido processados.
fonte
ls
; você já pensou em usarstat -c'%s' "${IFILE}"
essels|awk
combo? Ou seja, assumindo coreutils GNU ...Se alguém tem o Python em seu sistema, pode usar um pequeno script python para tirar proveito da
seek()
função e começar a ler no enésimo byte da seguinte forma:E o uso seria assim:
Observe que a contagem de bytes começa em 0 (portanto, o primeiro byte é na verdade o índice 0), especificando 3 e posicionando efetivamente a leitura para começar em 3 + 1 = 4th byte
fonte