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
sed para 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.