O Linux oferece vários comandos para formatação e edição de texto, e um comando especialmente útil é o comando nl . Esta ferramenta permite adicionar números de linha a cada linha de um arquivo de texto ou entrada, facilitando a leitura e a organização do conteúdo.
O que faz o comando nl ?
O comando nl exibe o conteúdo de um arquivo de texto com números de linha adicionados às linhas não vazias por padrão. É especialmente útil ao trabalhar com scripts ou revisar arquivos grandes, onde acompanhar os números de linha é essencial para depurar ou editar.
Exemplo: uso do comando nl
Suponha que você tenha um arquivo chamado hello-world.sh contendo o seguinte script:
#!/bin/bash
#
#This is a demo script that greets the world
#Author: Jose Navarro Varela
#Usage: ./hello-world.sh
clear
echo hello world
exit 0
Para exibir o arquivo com números de linha, basta executar:
nl hello-world.sh
A saída ficará assim:
1 #!/bin/bash
2 #
3 #This is a demo script that greets the world
4 #Author: Jose Navarro Varela
5 #Usage: ./hello-world.sh
6 clear
7 echo hello world
8 exit 0
Por padrão, o comando nl numera apenas as linhas não vazias.
Numerar todas as linhas (incluindo as vazias)
Para incluir linhas vazias na numeração, use a opção -b a :
nl -b a hello-world.sh
A saída ficará assim:
1 #!/bin/bash
2 #
3 #This is a demo script that greets the world
4 #Author: Jose Navarro Varela
5 #Usage: ./hello-world.sh
6
7 clear
8 echo hello world
9 exit 0
Adicionar um separador personalizado
O comando nl permite personalizar o separador entre os números de linha e o texto usando a opção -s . Por exemplo, para adicionar ... como separador:
nl -s "..." hello-world.sh
A saída ficará assim:
1...#!/bin/bash
2...#
3...#This is a demo script that greets the world
4...#Author: Jose Navarro Varela
5...#Usage: ./hello-world.sh
6...
7...clear
8...echo hello world
9...exit 0
Opções adicionais
O comando nl oferece mais opções de personalização, como:
-w: Especifica a largura do campo do número de linha.-n: Define o formato de numeração (alinhado à direita, alinhado à esquerda ou preenchido com zeros).
Você pode explorar todas as opções disponíveis consultando a página do manual com:
man nl
Cenários comuns de uso do comando nl
O comando nl é amplamente usado em várias situações. Abaixo estão alguns dos cenários mais comuns:
1. Depurar scripts de shell
Ao depurar um script de shell, você pode precisar se referir a linhas específicas onde ocorrem erros. Usar o comando nl para adicionar números de linha facilita identificar as linhas problemáticas.
Exemplo:
nl my-script.sh
2. Preparar documentação ou revisões de código
Ao compartilhar scripts ou trechos de código para revisão, adicionar números de linha torna o conteúdo mais legível e mais fácil de referenciar durante as discussões.
Exemplo:
nl config.conf > numbered-config.conf
3. Revisar arquivos de texto grandes
Ao trabalhar com arquivos de log, de configuração ou de dados grandes, adicionar números de linha ajuda a navegar e a referenciar seções específicas.
Exemplo:
nl /var/log/syslog
4. Comparar arquivos com números de linha
Adicionar números de linha aos arquivos antes de compará-los facilita a identificação de diferenças.
Exemplo:
nl file1.txt > numbered-file1.txt
nl file2.txt > numbered-file2.txt
diff numbered-file1.txt numbered-file2.txt
5. Formatar a saída para relatórios
O comando nl pode ser usado para formatar arquivos de texto para relatórios ou apresentações em que linhas numeradas são necessárias para maior clareza.
Exemplo:
nl report.txt > numbered-report.txt
6. Visualizar scripts com números de linha nas linhas vazias
Às vezes, os scripts contêm linhas vazias que são importantes para a legibilidade. Você pode usar a opção -b a para numerar todas as linhas, incluindo as vazias.
Exemplo:
nl -b a script.sh
7. Personalizar números de linha para formatos específicos
Ao apresentar arquivos de texto numerados, você pode precisar de separadores ou formatos personalizados.
Exemplo:
nl -s " -> " textfile.txt
Por que usar o comando nl ?
O comando nl é uma ferramenta simples, mas poderosa, para:
- Depurar scripts identificando linhas específicas.
- Adicionar números de linha a arquivos de texto para facilitar a navegação.
- Preparar saídas formatadas para documentação ou compartilhamento.