이 프로그램에서는 text.txt라는 파일이 주어졌을 때, 파일에서 특정 줄만 골라서 출력하는 작업을 수행합니다.
Bash 스크립트에서 이를 구현하는 방법은 여러 가지가 있으며, 대표적으로 awk, sed, head 명령어를 활용할 수 있습니다.
기본 문법
각 명령어를 사용해 파일의 특정 줄 번호(LINE_NUMBER)에 해당하는 내용을 출력하는 기본 문법은 다음과 같습니다.
$> awk '{if(NR==LINE_NUMBER) print $0}' filename
$> sed -n LINE_NUMBERp filename
$> head -n LineNumber filename | tail -n + LINE_NUMBERtext.txt 파일에서 특정 줄 출력하기
아래 예제들은 모두 text.txt 파일에서 5번째 줄을 출력하는 코드입니다.
1. awk 사용하기
awk는 NR(레코드 번호) 변수를 사용해 현재 처리 중인 줄 번호를 확인합니다. 조건문으로 원하는 줄 번호와 일치할 때 해당 줄 전체($0)를 출력하도록 지정합니다.
$> awk '{if(NR==5) print $0}' text.txt2. sed 사용하기
sed는 -n 옵션으로 자동 출력을 비활성화한 뒤, '줄번호p' 형식으로 특정 줄만 선택하여 출력합니다. 가장 간결한 방법 중 하나입니다.
$> sed -n 5p text.txt
3. head 사용하기
head로 파일의 앞부분부터 원하는 줄까지 잘라낸 후, tail을 파이프(|)로 연결해 그중 마지막 줄만 추출하는 방식입니다.
$> head -n 5 filename | tail -n + 5
세 가지 방법 모두 동일한 결과를 얻을 수 있으므로, 상황과 스크립트 스타일에 맞게 편리한 도구를 선택하면 됩니다.