Você pode usar grep
para mostrar apenas os primeiros (até) 4 caracteres de cada linha:
grep -Eo '^.{,4}' /PATH/TO/FILE
-E
ativa expressões regulares estendidas, o que é necessário para o quantificador de colchetes aqui.% -o
torna grep
output apenas a parte correspondente, não a linha inteira na qual foi encontrada
O padrão ^.{,4}
corresponde no início de uma linha ( ^
) uma sequência que consiste em qualquer caractere ( .
) e tem até 4 caracteres ( {,4}
).
Para salvar a saída como um arquivo, basta usar o redirecionamento:
grep -Eo '^.{,4}' /PATH/TO/FILE > /PATH/TO/OUTPUT-FILE
Acompanhamento:
Para um padrão genérico para corresponder a um intervalo específico (do x-ésimo caractere ao y-ésimo caractere), considere este exemplo, que exibe do 10º ao 18º caractere de cada linha:
$ echo 123456789abcdefghij | grep -Po '(?<=^.{9}).{8}'
abcdefgh
Isto é conseguido pulando os 9 primeiros caracteres sem combiná-los usando um chamado lookbehind ( (?<=...)
). Esse recurso não está incluído nas expressões regulares estendidas entendidas por grep
, portanto, precisamos de -P
para ativar o PCRE.
Depois de exatamente 9 caracteres terem sido ignorados, ele corresponde aos próximos exatamente 8 caracteres. Se a linha for menor que isso, ela não corresponderá. Para corresponder até 8 caracteres novamente, como na primeira parte desta resposta, escreva {,8}
em vez de {8}
.