Introdução
Neste laboratório, você aprenderá como usar o comando Linux nl para adicionar números de linha a arquivos de texto. A numeração de linhas é uma técnica útil ao trabalhar com arquivos de configuração, código ou qualquer documento de texto onde você precise referenciar linhas específicas. O comando nl oferece várias opções para personalizar o formato da numeração, tornando-o uma ferramenta flexível para diferentes necessidades de documentação e processamento.
Ao final deste laboratório, você entenderá como aplicar técnicas básicas e avançadas de numeração de linhas a arquivos de texto, o que aprimorará suas habilidades de processamento de texto no Linux.
Criando um Arquivo de Texto de Exemplo
Nesta etapa, você criará um arquivo de texto de exemplo que usará ao longo deste laboratório para praticar a numeração de linhas.
Primeiro, vamos verificar seu diretório de trabalho atual. Por padrão, você deve estar no diretório /home/labex/project. Você pode confirmar isso com o comando pwd:
pwd
Você deve ver a seguinte saída:
/home/labex/project
Agora, vamos criar um arquivo de texto simples chamado sample.txt usando o editor de texto nano. Digite o seguinte comando para abrir o nano:
nano sample.txt
Dentro do editor nano, digite o seguinte conteúdo:
Linux Commands
-------------
cat - display file contents
ls - list directory contents
cd - change directory
grep - search for patterns
chmod - change file permissions
Para salvar o arquivo e sair do nano:
- Pressione
Ctrl+X(para sair) - Pressione
Y(para confirmar que deseja salvar as alterações) - Pressione
Enter(para confirmar o nome do arquivo)
Agora, verifique se seu arquivo foi criado exibindo seu conteúdo:
cat sample.txt
Você deve ver o texto exato que você digitou exibido no terminal.
Numeração Básica de Linhas com nl
Agora que você criou um arquivo de texto de exemplo, vamos aprender como adicionar números de linha usando o comando nl. O comando nl no Linux é usado para numerar linhas em um arquivo, o que pode ser útil para fins de referência.
Vamos usar o comando nl básico para numerar todas as linhas em seu arquivo de exemplo:
nl sample.txt
Você deve ver uma saída semelhante à seguinte:
1 Linux Commands
2 -------------
3 cat - display file contents
4 ls - list directory contents
5 cd - change directory
6 grep - search for patterns
7 chmod - change file permissions
Observe que o comando nl adiciona números de linha no início de cada linha. Este é o comportamento padrão do comando nl.
Se você quiser salvar esta saída numerada em um novo arquivo, você pode usar o redirecionamento de saída com o símbolo >:
nl sample.txt > numbered_sample.txt
Este comando cria um novo arquivo chamado numbered_sample.txt contendo a versão com números de linha do seu arquivo original. Vamos verificar o conteúdo deste novo arquivo:
cat numbered_sample.txt
Você deve ver a mesma saída numerada de antes, agora salva em um arquivo.
O comando nl básico é útil, mas às vezes você pode precisar personalizar como a numeração de linhas aparece. Na próxima etapa, exploraremos algumas opções de personalização.
Personalizando o Formato de Numeração de Linhas
O comando nl oferece várias opções para personalizar como os números de linha aparecem. Nesta etapa, você aprenderá como modificar o formato da numeração de linhas para atender a diferentes necessidades.
Número Inicial
Por padrão, a numeração de linhas começa em 1. Você pode alterar isso com a opção -v (valor inicial). Vamos numerar as linhas começando de 100:
nl -v 100 sample.txt > custom_start.txt
Visualize o resultado:
cat custom_start.txt
Você deve ver a saída com os números de linha começando de 100:
100 Linux Commands
101 -------------
102 cat - display file contents
103 ls - list directory contents
104 cd - change directory
105 grep - search for patterns
106 chmod - change file permissions
Formato do Número
Você também pode controlar o formato do número usando a opção -n. Os especificadores de formato incluem:
ln: justificado à esquerda, sem zeros à esquerdarn: justificado à direita, sem zeros à esquerdarz: justificado à direita, com zeros à esquerda
Vamos tentar números justificados à direita com zeros à esquerda:
nl -n rz sample.txt > zero_padded.txt
Visualize o resultado:
cat zero_padded.txt
Você deve ver uma saída como:
000001 Linux Commands
000002 -------------
000003 cat - display file contents
000004 ls - list directory contents
000005 cd - change directory
000006 grep - search for patterns
000007 chmod - change file permissions
Largura do Campo Numérico
Você pode controlar a largura do campo numérico com a opção -w. Por padrão, tem 6 caracteres de largura. Vamos defini-lo para 3:
nl -w 3 sample.txt > narrow_numbers.txt
Visualize o resultado:
cat narrow_numbers.txt
Você deve ver a saída com um campo numérico mais estreito:
1 Linux Commands
2 -------------
3 cat - display file contents
4 ls - list directory contents
5 cd - change directory
6 grep - search for patterns
7 chmod - change file permissions
Tente combinar várias opções:
nl -v 10 -w 4 -n rz sample.txt > combined_format.txt
Este comando:
- Começa a numeração de 10 (
-v 10) - Define a largura para 4 caracteres (
-w 4) - Usa o formato justificado à direita com preenchimento de zeros (
-n rz)
Visualize o resultado combinado:
cat combined_format.txt
Você deve ver a numeração de linhas personalizada:
0010 Linux Commands
0011 -------------
0012 cat - display file contents
0013 ls - list directory contents
0014 cd - change directory
0015 grep - search for patterns
0016 chmod - change file permissions
Essas opções de personalização oferecem flexibilidade em como os números de linha aparecem em seus documentos.
Numeração Seletiva de Linhas
Às vezes, você pode querer numerar apenas certas linhas em um arquivo, e não todas. O comando nl oferece opções para numerar seletivamente as linhas com base em critérios específicos.
Criar um Arquivo com Linhas em Branco
Primeiro, vamos criar um novo arquivo que inclua linhas em branco:
nano mixed_content.txt
No editor nano, insira o seguinte conteúdo (incluindo as linhas em branco):
Section 1: File Operations
cat - display file contents
less - view file content with pagination
Section 2: Navigation
cd - change directory
pwd - print working directory
Section 3: Permissions
chmod - change file permissions
chown - change file ownership
Salve o arquivo pressionando Ctrl+X, depois Y e Enter.
Numerar Apenas Linhas Não Vazias
Por padrão, nl numera todas as linhas. Para numerar apenas linhas não vazias, use a opção -b t:
nl -b t mixed_content.txt > numbered_nonempty.txt
Visualize o resultado:
cat numbered_nonempty.txt
Você deve ver que apenas as linhas não vazias foram numeradas:
1 Section 1: File Operations
2 cat - display file contents
3 less - view file content with pagination
4 Section 2: Navigation
5 cd - change directory
6 pwd - print working directory
7 Section 3: Permissions
8 chmod - change file permissions
9 chown - change file ownership
Numerar Apenas Linhas Correspondentes a um Padrão
Você também pode numerar apenas as linhas que correspondem a um padrão específico usando a opção -b p'PADRÃO'. Por exemplo, para numerar apenas as linhas contendo a palavra "Section":
nl -b p'Section' mixed_content.txt > numbered_sections.txt
Visualize o resultado:
cat numbered_sections.txt
Você deve ver que apenas as linhas contendo "Section" são numeradas:
1 Section 1: File Operations
cat - display file contents
less - view file content with pagination
2 Section 2: Navigation
cd - change directory
pwd - print working directory
3 Section 3: Permissions
chmod - change file permissions
chown - change file ownership
Personalizar o Separador
O separador padrão entre o número da linha e o texto é uma tabulação. Você pode alterar isso usando a opção -s:
nl -s '. ' mixed_content.txt > custom_separator.txt
Visualize o resultado:
cat custom_separator.txt
Você deve ver os números de linha seguidos por um ponto e um espaço:
1. Section 1: File Operations
2. cat - display file contents
3. less - view file content with pagination
4. Section 2: Navigation
5. cd - change directory
6. pwd - print working directory
7. Section 3: Permissions
8. chmod - change file permissions
9. chown - change file ownership
Essas opções de numeração seletiva permitem que você aplique números de linha apenas onde são necessários, tornando seus documentos mais organizados e fáceis de referenciar.
Aplicações Práticas e Uso Avançado
Nesta etapa final, exploraremos algumas aplicações práticas e o uso avançado do comando nl em cenários do mundo real.
Numerando Múltiplos Arquivos
O comando nl pode processar vários arquivos de uma vez. Vamos criar um segundo arquivo:
nano commands2.txt
Adicione o seguinte conteúdo:
Additional Linux Commands
------------------------
find - search for files
tar - archive files
ssh - secure shell connection
df - disk free space
top - display system processes
Salve e saia do nano. Agora vamos numerar os dois arquivos juntos:
nl sample.txt commands2.txt > combined_numbered.txt
Visualize o resultado combinado:
cat combined_numbered.txt
Você deve ver ambos os arquivos numerados sequencialmente:
1 Linux Commands
2 -------------
3 cat - display file contents
4 ls - list directory contents
5 cd - change directory
6 grep - search for patterns
7 chmod - change file permissions
1 Additional Linux Commands
2 ------------------------
3 find - search for files
4 tar - archive files
5 ssh - secure shell connection
6 df - disk free space
7 top - display system processes
Observe que os números de linha reiniciam para o segundo arquivo. Se você deseja uma numeração contínua entre os arquivos, pode usar a opção -i:
nl -i 1 -n ln sample.txt commands2.txt > continuously_numbered.txt
Visualize o resultado:
cat continuously_numbered.txt
Você deve ver a numeração contínua em ambos os arquivos:
1 Linux Commands
2 -------------
3 cat - display file contents
4 ls - list directory contents
5 cd - change directory
6 grep - search for patterns
7 chmod - change file permissions
8 Additional Linux Commands
9 ------------------------
10 find - search for files
11 tar - archive files
12 ssh - secure shell connection
13 df - disk free space
14 top - display system processes
Combinando com Outros Comandos
O comando nl pode ser combinado com outros comandos Linux usando pipes. Por exemplo, você pode numerar as linhas da saída de um comando:
ls -l /etc | nl > numbered_ls_output.txt
Visualize o resultado:
cat numbered_ls_output.txt
Você deve ver a saída de ls -l /etc com números de linha adicionados.
Caso de Uso do Mundo Real: Adicionando Números de Linha a um Arquivo de Log
A numeração de linhas é especialmente útil ao analisar arquivos de log. Vamos ver como podemos usar nl para adicionar números de linha aos logs:
## Primeiro, crie um arquivo de log de exemplo
cat > sample_log.txt << EOF
[2023-07-01 10:15:22] INFO: System startup
[2023-07-01 10:15:24] INFO: Loading configuration
[2023-07-01 10:15:25] WARNING: Config file is outdated
[2023-07-01 10:15:28] ERROR: Failed to connect to database
[2023-07-01 10:15:30] INFO: Retrying database connection
[2023-07-01 10:15:33] INFO: Database connection established
[2023-07-01 10:15:35] INFO: System ready
EOF
Agora, adicione números de linha com um formato personalizado que inclua o número da linha entre colchetes:
nl -s ' [Line: ' -n ln -w 2 -b a sample_log.txt | sed 's/$/]/' > numbered_log.txt
Este comando:
- Usa um separador personalizado
-s ' [Line: ' - Usa números justificados à esquerda sem zeros à esquerda
-n ln - Define a largura para 2 caracteres
-w 2 - Numera todas as linhas
-b a - Usa
sedpara adicionar um colchete de fechamento no final de cada linha
Visualize o resultado:
cat numbered_log.txt
Você deve ver as entradas do log com números de linha entre colchetes:
1 [Line: [2023-07-01 10:15:22] INFO: System startup]
2 [Line: [2023-07-01 10:15:24] INFO: Loading configuration]
3 [Line: [2023-07-01 10:15:25] WARNING: Config file is outdated]
4 [Line: [2023-07-01 10:15:28] ERROR: Failed to connect to database]
5 [Line: [2023-07-01 10:15:30] INFO: Retrying database connection]
6 [Line: [2023-07-01 10:15:33] INFO: Database connection established]
7 [Line: [2023-07-01 10:15:35] INFO: System ready]
Este formato pode ser muito útil ao referenciar entradas de log específicas em documentação ou discussões.
Agora você tem uma boa compreensão de como usar o comando nl para numeração de linhas básica e avançada no Linux. Essa habilidade será valiosa ao trabalhar com arquivos de texto, logs, código e documentação.
Resumo
Neste laboratório, você aprendeu como usar o comando nl do Linux para adicionar números de linha a arquivos de texto. Aqui está um resumo dos principais conceitos abordados:
- Numeração básica de linhas usando o comando
nlsimples - Personalização do formato de numeração de linhas com opções como
-v(valor inicial),-n(formato do número) e-w(largura) - Numeração seletiva de linhas com opções como
-b t(linhas não vazias) e-b p'PADRÃO'(correspondência de padrões) - Personalização do separador entre números de linha e texto com a opção
-s - Trabalhar com vários arquivos e criar numeração contínua entre arquivos
- Combinando
nlcom outros comandos usando pipes - Aplicações práticas, como numerar arquivos de log para facilitar a referência
O comando nl é uma ferramenta valiosa para processamento de texto no Linux, especialmente quando você precisa referenciar linhas específicas em documentação, revisões de código ou ao analisar arquivos de log. Ao dominar as várias opções de nl, você agora tem uma técnica poderosa para aprimorar a legibilidade e a usabilidade de dados baseados em texto.
Ao continuar sua jornada no Linux, lembre-se de que comandos de processamento de texto como nl, combinados com outras ferramentas, formam a base da manipulação eficiente de arquivos e do processamento de dados no ambiente Linux.



