Existem muitos comandos e ferramentas do Linux usados para processar arquivos de texto. Mas há momentos em que você não deseja ler todo o conteúdo de um arquivo, mas sim uma parte específica dele. Você sabia que pode usar os comandos head e tail no Linux para exibir o início e o fim de um arquivo, respectivamente?
Continue lendo para descobrir como você pode usar esses dois comandos para processar e manipular textos com eficiência no Linux.
Qual é o comando principal?
O comando head é usado para imprimir as partes iniciais de um arquivo. Ele lê os arquivos desde o início. Se você tiver um arquivo com mais de mil linhas, seria muito complicado abri-lo e lê-lo. Você pode facilmente imprimir algumas linhas do topo usando o comando head.
A sintaxe do comando head
A sintaxe básica do comando head é:
cabeça[opção][arquivo]
Existem muitas opções disponíveis para usar junto com o comando head, algumas das quais serão discutidas posteriormente. Para obter ajuda de linha de comando em relação ao comando head, verifique sua página de manual executando:
cabeça de homem
Como usar o comando head
Para este exemplo, crie um arquivo: números.txt. No arquivo, liste os números de um a 20 em palavras. Você pode optar por usar qualquer arquivo de sua preferência, mas certifique-se de que ele tenha pelo menos 11 linhas.
Usando o comando head padrão
Por padrão, o comando head imprime as primeiras 10 linhas de texto em um arquivo. Experimente com o arquivo numbers.txt executando este comando em seu terminal:
cabeçanúmeros.TXT
Ele imprimirá as primeiras 10 linhas do arquivo:
um
dois
três
quatro
cinco
seis
Sete
oito
nove
dez
Se o arquivo tiver menos de 10 linhas, o comando head imprimirá todas as linhas presentes.
Imprimir o Primeiro N Número de Linhas
Você pode usar o comando head para imprimir um número específico de linhas em vez do padrão 10. Para imprimir as três primeiras linhas do arquivo numbers.txt, execute este comando:
cabeça-n 3 números.TXT
O resultado:
um
dois
três
Excluir as últimas N linhas usando o comando head
Assim como você pode imprimir as primeiras linhas de um texto, também pode decidir excluir as últimas N linhas ao imprimir. Você pode fazer isso usando um número negativo para o parâmetro N.
Para excluir as últimas 15 linhas do arquivo numbers.txt, execute:
cabeça-n-15números.TXT
O resultado:
um
dois
três
quatro
cinco
Imprimir os primeiros N caracteres de um arquivo
O comando head também tem a opção de imprimir o primeiro número de caracteres ou bytes em um arquivo. Você pode fazer isso usando o -c opção. Para imprimir os primeiros 10 caracteres, use:
cabeça-c 10 números.TXT
Saída:
um
dois
º
O que é o comando tail?
Como o nome indica, o comando tail imprime as últimas linhas de um arquivo. Ele lê os arquivos do final e gera as linhas finais.
A sintaxe do comando tail
A sintaxe básica do comando tail é:
cauda[opção][arquivo]
Para obter mais informações sobre o comando tail, verifique sua página de manual emitindo:
rabo de homem
Como usar o comando tail
Estaremos usando o arquivo já criado numbers.txt para os exemplos a seguir.
Usando o comando tail padrão
O comando tail gera as últimas 10 linhas de um arquivo quando usado sem nenhuma opção especial. Por exemplo:
caudanúmeros.TXT
A saída exibirá as últimas 10 linhas conforme mencionado:
onze
doze
treze
quatorze
quinze
dezesseis
dezessete
dezoito
dezenove
vinte
Imprimir o Último N Número de Linhas
Em uma situação em que você não deseja imprimir as últimas 10 linhas, mas um número específico, pode usar o -n opção para conseguir isso. Para imprimir as últimas quatro linhas do arquivo numbers.txt, execute este comando:
cauda-n 4 números.TXT
O resultado:
dezessete
dezoito
dezenove
vinte
Imprimir linhas após uma linha específica
Se você quiser começar a partir de uma determinada linha N, você pode usar o -n opção ao lado de um número positivo para conseguir isso. Para imprimir a saída do arquivo numbers.txt da 17ª linha, execute este comando:
cauda-n +17 números.TXT
O resultado:
dezessete
dezoito
dezenove
vinte
Imprimir os últimos N caracteres de um arquivo
Assim como o comando head, você pode imprimir os últimos caracteres do arquivo usando o comando -c opção. Para imprimir os últimos 10 caracteres do arquivo numbers.txt, execute este comando:
cauda-c 10 números.TXT
O resultado:
pt
vinte
Usando os comandos head e tail com vários arquivos
Você também pode usar cabeça e cauda para imprimir mais de um arquivo por vez. Esta é a sintaxe para usar os comandos com várias entradas de arquivo:
cabeça[opção][arquivo1][arquivo2]
cauda[opção][arquivo1][arquivo2]
Usando os comandos head e tail juntos
Você pode até usar cabeça e cauda no mesmo comando usando o símbolo de barra vertical. O símbolo do cachimbo redireciona a saída de um comando como uma entrada para outro.
Por exemplo, para obter a sexta, sétima e oitava linhas, você pode executar este comando:
head -n 8 números.txt | cauda -n 3
O resultado:
seis
Sete
oito
No one-liner mencionado acima, o comando head exibia as primeiras oito linhas do arquivo e, em seguida, a saída foi passada para o comando tail, que imprimiu as últimas três linhas do redirecionado saída.
cabeça e cauda: comandos úteis de manipulação de texto
O Linux oferece muitos comandos para ajudá-lo a manipular e processar arquivos de texto com eficiência, e os comandos head e tail são apenas dois de muitos. Os comandos de manipulação de texto mais comuns incluem grep, uniq, sort, sed, awk, etc. Cada um deles cumpre um propósito diferente com seu conjunto de recursos exclusivos.
Além de cabeça e cauda, existem vários outros comandos de manipulação de texto e arquivo disponíveis para usuários do Linux.