Visualizando arquivos muito amplos

3

Eu preciso ver alguns arquivos de largura de 5200 bytes. Existe alguma ferramenta para tornar isso prático sem modificar o arquivo? Idealmente, gostaria de especificar quais colunas estou visualizando.

    
por user44303 01.08.2013 / 18:11

2 respostas

5

Se o que você deseja é mostrar apenas colunas específicas (digamos as colunas 1,5 e 12), use awk :

awk '{print $1,$5,$12}' wide_file.txt | less

awk divide as linhas nos campos automaticamente e as atribui às variáveis. O primeiro campo é $1 , o segundo $2 etc. Por padrão, ele é dividido em espaços, se você tiver uma guia diferente de delimitador, por exemplo, especifique-o com -F :

awk -F'\t' '{print $1,$5,$12}' wide_file.txt | less

Eu nunca usei o Solaris, mas de acordo com esta página , o padrão awk pode não suporte a opção -F , caso em que você deve usar /usr/bin/nawk ou /usr/xpg4/bin/awk .

    
por 01.08.2013 / 18:18
0

Aqui estão duas sugestões que funcionarão bem com arquivos grandes. (grande em termos de tamanho de linha e em termos de número de linhas, não importa)

Sugestão 1:

Você pode usar uma combinação de cut e less .

Usando cut , você pode especificar 'colunas' tanto por posição de byte quanto por posição lógica. Na verdade, você também pode usar a posição do personagem. (a diferença entre a posição do byte e a posição do caractere só é relevante se o arquivo contiver caracteres multi-byte).

Digamos que você queira ver os bytes 1200-1270 de cada linha, então você faria:

cut -c1200-1270 wide_file.txt | less

ou se você quiser ver as colunas lógicas 33-37, então você faria

cut -f33-37 wide_file.txt | less


Sugestão 2:

Você também pode usar less sozinho.

Invoque less com a opção -S, como em

less -S wide_file.txt

Depois, você pode rolar para a esquerda ou para a direita no arquivo, fazendo n + seta para direita ou n + seta para esquerda, onde 'n' é o número de posições para rolar.

Vamos dizer que você queria rolar para a direita 2000 posições. Você deve digitar 2000 e, em seguida, pressione a seta para a direita. Voila!

    
por 03.08.2013 / 19:55