특정 유형의 행에만 번호 매기기
nl 명령어는 특정 조건을 만족하는 행에만 번호를 매길 수 있습니다. 복잡한 파일에서 특정 내용에만 집중하고 싶을 때 매우 유용합니다. 이번에는 설정 파일에서 주석으로 사용되는 '#'으로 시작하는 줄을 제외하고, 실제 내용이 있는 줄에만 번호를 매겨 보겠습니다.
다음 명령어를 사용하세요.
nl -b p'^[^#]' config.txt
다음과 같은 결과가 출력됩니다.
## Server Configuration
1 port=8080
2 max_connections=100
## Database Settings
3 db_host=localhost
4 db_port=5432
5 db_name=myapp
### Logging Configuration
6 log_level=info
7 log_file=/var/log/myapp.log
## Security Settings
8 enable_ssl=true
9 ssl_cert_path=/etc/ssl/certs/myapp.crt
### Performance Tuning
10 cache_size=1024
11 thread_pool=20
## Miscellaneous
12 debug_mode=false
이 복잡해 보이는 명령어를 분석해 보겠습니다.
-b p는 특정 패턴 (Pattern) 과 일치하는 행에만 번호를 매기도록 지시합니다.
'^[^#]'는 정규 표현식 패턴입니다.
^는 "줄의 시작"을 의미합니다.
[^#]는 "#이 아닌 모든 문자"를 의미합니다.
- 따라서 이 패턴은 #으로 시작하지 않는 모든 행과 일치하게 됩니다.
이 명령어는 주석을 무시하고 실제 활성화된 설정 값들만 확인하고 싶을 때 유용합니다. 특히 규모가 큰 설정 파일에서 실제 설정 항목을 빠르게 식별하고 참조하는 데 큰 도움이 됩니다.
예상한 결과가 나오지 않는다면 패턴을 감싸는 작은따옴표를 포함하여 명령어를 정확히 입력했는지 다시 확인하세요.