Como mover para o "Nth" offset em um arquivo

2

Estou precisando de um comando que obtenha o N th offset em um arquivo.
Diga que este é o conteúdo do meu arquivo:

[root@localhost ~]# cat /file1.txt
this is the the first line of many lines
and is just a sample file

Gostaria de encontrar o caractere no 6º deslocamento usando um comando que, neste caso, é i .

Existe algum comando ou vi editor que funcione?

    
por Dhiwakar Ravikumar 04.02.2016 / 06:58

4 respostas

3

dd bs=1 skip=5 count=1 <infile
i

... ou, se você gosta de compartilhar ...

{ dd bs=5 skip=1 count=0; cat; } <infile
is the the first line of many lines
and is just a sample file

... embora esse offset seja byte não char . Ainda assim, com um arquivo de entrada regular, dd não é facilmente correspondido para procurar compensações.

    
por 04.02.2016 / 08:29
2

Em vim , :goto 6 ou 6go moverá o cursor para o grafo que contém o 6º byte no buffer atual.

Se o deslocamento apontar para um caractere de nova linha, ele posicionará o cursor no final da linha correspondente (no seu exemplo, 40go e 41go colocarão o cursor na mesma posição).

    
por 04.02.2016 / 10:31
1

Cut é o que você está procurando.

cut -b6 file1.txt

Isso mostra o sexto byte ... por linha do arquivo. Eu acho que você só quer o sexto byte, então você pode usar algo como head

head -n1 file1.txt | cut -b6

Voila.

    
por 04.02.2016 / 07:19
1

Outra maneira de usar od -

 od -An -c -j 5 -N1 file
 i
    
por 04.02.2016 / 10:17