6 maneiras de contar o número de linhas em um arquivo Linux
Conte as linhas, estime o tamanho.
Principais conclusões
- Você pode usar o comando wc com a opção “-l” para encontrar a contagem de linhas de um arquivo (wc -l filename). Isso também imprimirá o nome do arquivo.
- Uma combinação do comando sed com a opção "-n" também pode fornecer uma contagem de linhas (sed -n '=' nome do arquivo). Este comando imprimirá os números das linhas sem o conteúdo do arquivo.
- Execute o comando awk com a variável "NR" integrada para obter a contagem de linhas de um arquivo (nome do arquivo awk 'END {print NR}').
Quer contar o número de linhas em um arquivo Linux? Forneceremos algumas maneiras diferentes de fazer isso. A contagem do número de linhas fornece informações sobre o tamanho de um determinado arquivo.
Por que contar as linhas em um arquivo?
Como todos os arquivos de computador, os arquivos do Linux vêm em tamanhos diferentes. Alguns arquivos são grandes e outros são pequenos. Os usuários do Linux frequentemente precisam verificar o tamanho do arquivo para gerenciar o espaço em disco do sistema e evitar ficar sem armazenamento. Uma maneira de fazer isso é contar o número de linhas que um arquivo possui, ainda que aproximadamente. Assim como a espessura de um livro geralmente indica seu comprimento, o número de linhas em um arquivo pode, em algumas situações, dar uma noção relativa de seu tamanho.
Contar as linhas de um arquivo é útil por vários motivos. Você pode verificar o formato ou estrutura do arquivo. Ele também pode medir o tamanho e a complexidade de um arquivo de texto, como um arquivo de código-fonte, um arquivo de configuração ou um arquivo de log.
A contagem de linhas pode ajudá-lo a filtrar e analisar a saída de outros comandos. Por exemplo, pode-se analisar o número de linhas em um arquivo de log do sistema. Isso o ajudará a verificar o número aproximado de erros presentes no arquivo de log do sistema.
A contagem de linhas também fornece uma estimativa do total de itens em um diretório. Contando as linhas em um arquivo ao longo do tempo, você pode rastrear alterações no arquivo, como adição ou remoção de linhas. Isso pode ser útil para depurar software ou rastrear alterações em um documento.
Como contar linhas em um arquivo no Linux
O Linux fornece uma variedade de comandos e ferramentas que facilitam descobrir quantas linhas há em um arquivo. Alguns desses comandos são wc, sed, grep e awk. Um script Bash também pode ajudar a calcular a contagem de linhas em um arquivo. Exploraremos cada um desses métodos com um exemplo.
1. Conte palavras, linhas e caracteres em um arquivo usando wc
Você quer uma maneira simples de contar as linhas em um arquivo? Basta usar o comando wc. Este comando exibe o número de palavras, linhas e caracteres em um arquivo.
Vamos considerar um arquivo de exemplo, example.txt. Este arquivo contém uma lista de alguns comandos Linux para iniciantes:
Para contar as linhas do arquivo especificado chamado exemplo.txt, adicione o sinalizador -l com o comando wc seguido do nome do arquivo:
wc -l example.txt
A saída acima exibe apenas a contagem de linhas. Para obter informações detalhadas sobre o arquivo, use o comando wc sem nenhuma opção. O comando wc, sem sinalizadores, imprimirá a contagem de palavras, linhas e caracteres de um arquivo em um único comando:
wc example.txt
Agora, suponhamos que você tenha três arquivos chamados exemplo.txt, novo.txt e novo1.txt. Para contar o número de linhas de vários arquivos, basta usar o comando wc com a opção -l seguida dos nomes dos arquivos.
wc -l example.txt new.txt new1.txt
O comando wc também pode exibir a contagem de linhas de todos os arquivos presentes dentro de um diretório. Para fazer isso, use o comando wc com a opção -l seguida do operador asterisco.
wc -l *
Como em todos os casos acima, a saída mostra o nome do arquivo junto com a contagem de linhas. Para mostrar a contagem de linhas sem o nome do arquivo, execute:
wc -l < example.txt
Aqui, o comando wc usa redirecionamento de entrada. Isso fornecerá o conteúdo do arquivo de exemplo ao comando wc. Em seguida, conta diretamente as linhas sem exibir o nome do arquivo.
Outra maneira de contar linhas em um arquivo é canalizar a saída do comando cat com o comando wc -l.
cat example.txt | wc -l
2. Contar e exibir números de linha de um arquivo usando sed
O comando sed, ou editor de fluxo, é uma ferramenta de linha de comando essencial para manipulação de texto no Linux. Ele executa várias operações em um arquivo, como inserir, excluir, substituir ou anexar texto. O comando sed obtém a entrada de um arquivo ou entrada padrão.
O comando sed também pode contar o total de linhas de um arquivo especificado. Podem ser necessários argumentos diferentes para imprimir os números das linhas.
Execute o comando sed com a opção -n e um sinal de igual para contar sequencialmente e mostrar os números das linhas em linhas separadas.
sed -n '=' example.txt
Às vezes, obter a contagem total de linhas é mais eficiente do que recuperar números de linhas individuais para cada linha do arquivo. O comando sed com as opções -n e $= pode contar e exibir o número total de linhas do arquivo. O $= significa a última linha do arquivo. Ele garante que apenas o número da linha seja impresso na saída padrão.
Para obter um número total de linhas no arquivo, use:
sed -n '$=' example.txt
3. Usando grep para contar o número de linhas em um arquivo
O comando grep é usado especificamente para procurar um padrão dentro de um arquivo. Não só isso, mas também pode nos dar a contagem total de linhas que correspondem ou não ao padrão definido. O padrão definido é uma expressão regular que especifica o que procurar.
Se você não especificar o arquivo, grep lê a entrada padrão.
Adicione o sinalizador -c ao comando grep para determinar a contagem de linhas que correspondem a um padrão específico. Por exemplo, para contar as linhas em um arquivo que contém a palavra “Command”, execute:
grep -c Command example.txt
Também é possível filtrar e contar facilmente as linhas que não contêm uma palavra ou padrão específico.
Para isso, use a flag -v com grep:
grep -c -v awk example.txt
Há outro padrão de expressão regular (".*") com um ponto e um sinal de asterisco. Corresponde a qualquer linha com zero ou mais ocorrências de qualquer caractere. Ao contrário dos dois comandos acima, não procura uma palavra específica. Ele simplesmente conta e gera o número de linhas em example.txt que possuem um ou mais caracteres.
grep -c ".*" example.txt
O sinalizador -c garante que apenas a contagem de linhas seja exibida, e não o conteúdo real da linha que corresponde ao padrão.
Para adicionar o nome do arquivo na saída acima, basta incluir o sinalizador -H:
grep -Hc ".*" example.txt
4. Imprima a contagem total de linhas em um arquivo usando awk
O comando awk é usado para processamento de texto e como ferramenta para extração de dados e relatórios. É particularmente forte na correspondência de padrões e no processamento de campos e registros.
Você pode usar o comando awk para contar as linhas em um arquivo. Ele usa a linguagem de programação AWK para imprimir o número total de registros (linhas) do arquivo.
awk 'END {print NR}' example.txt
O script awk fornecido END {print NR} é executado após processar todas as linhas no arquivo example.txt. O script instrui o awk a imprimir o valor de NR, que representa o número total de registros (linhas) processados.
5. Listando e contando linhas em um arquivo com o comando nl
O comando nl adiciona números de linha ao conteúdo do arquivo especificado. É útil para visualizar ou imprimir arquivos com números de linha. Você pode usar o comando nl com filename para contar as linhas em um arquivo especificado.
nl example.txt
Este comando exibirá os números das linhas e o conteúdo das linhas no arquivo example.txt.
No entanto, não é uma maneira eficiente de obter uma contagem de linhas de arquivos, especialmente para arquivos grandes. Envolve processamento e renderização adicionais de saída que não são necessários para a tarefa específica de contagem de linhas. Imagine um arquivo com milhares de linhas e você precisa rolar até o fim para obter a contagem total de linhas.
Se você quiser saber a contagem total de linhas sem qualquer outra informação, canalize a saída do comando nl com tail e awk.
nl example.txt | tail -1 | awk '{print $1}'
O comando nl adiciona um número de linha no início de cada linha. Em seguida, a saída do comando nl é canalizada com o comando tail, que exibe a última linha da entrada. A opção -1 diz ao comando tail para mostrar apenas uma linha. Até agora, você tem a saída "10 uname Command".
A seguir, esta saída é fornecida como entrada para o comando awk, que imprime um campo específico da entrada. O argumento {print $1} diz ao comando awk para imprimir o primeiro campo, que é o número da linha. Por exemplo, se a entrada for "10 comando uname", o comando awk imprimirá o primeiro campo, que neste caso é o número da linha 10.
6. Usando o script Bash para contar o número de linhas em um arquivo
O script Bash, uma ferramenta útil em sistemas Linux, é comumente usado para automatizar tarefas. Você também pode usá-lo para contar as linhas de um arquivo. Você pode escrever um script Bash personalizado, que usa o comando wc para imprimir a contagem de linhas de um arquivo:
#!/bin/bash
filename=$1
linecount=$(wc -l < "$filename")
echo "The file $filename has $linecount lines."
Este script Bash usa o comando wc com o sinalizador -l. O comando wc obtém a contagem de linhas e a armazena na variável linecount. No final do script, uma mensagem é ecoada no terminal, que exibe o nome do arquivo e sua contagem de linhas correspondente.
Para usar o script acima, basta salvá-lo como um arquivo com extensão ".sh" (count_lines.sh) e torná-lo executável usando chmod:
chmod +x count_lines.sh
Agora, execute o script usando a notação ./ seguida do nome do script:
./count_lines.sh example.txt
Você obterá a contagem total de linhas do arquivo example.txt para a saída padrão.
Conheça o seu sistema de arquivos Linux por dentro e por fora
No Linux, é importante conhecer os arquivos do seu sistema. Assim como contar linhas, contar arquivos Linux em um diretório também ajuda a gerenciar o sistema com mais eficiência. Isso ajudará você a saber quais arquivos estão ocupando mais espaço, o que excluir e o que manter.
Conhecer a estrutura de arquivos do Linux também é importante. Considere o principal pilar dos arquivos Linux – os inodes. Se você ficar sem isso em seu sistema, terá um dia difícil. Eles são muito limitados em número e armazenam dados cruciais em seu sistema.
Saber disso não apenas o ajudará a gerenciar e executar tarefas, mas também facilitará as tarefas de manutenção do sistema.