[리눅스] awk 명령어

리눅스에서 Awk(에이블 셸 컴포넌트)은 텍스트 및 데이터 추출 및 보고를 위한 강력한 프로그래밍 언어 및 도구입니다. Awk를 사용하면 데이터 파일을 쉽게 처리하고 원하는 정보를 추출할 수 있습니다.

Awk 명령어의 기본 구조

Awk 명령어의 기본 구조는 다음과 같습니다:

pattern { action }

여기서 pattern은 조건을 나타내고, action은 조건이 true로 평가될 때 실행하는 명령문들을 포함합니다.

Awk로 파일 데이터 처리하기

Awk는 파일의 각 줄을 읽으면서 패턴과 액션을 사용하여 특정 조건을 충족하는 줄만 처리할 수 있습니다.

다음은 간단한 예제입니다. 아래의 코드는 filename.txt 파일에서 2번째 필드가 “apple”인 줄을 출력합니다:

awk '$2 == "apple" { print $0 }' filename.txt

Awk에서 변수 사용하기

Awk에서는 변수를 사용하여 데이터를 저장하고 처리할 수 있습니다. 변수는 다음과 같이 사용할 수 있습니다.

awk '{ total += $1 } END { print total }' filename.txt

위의 예제는 파일의 첫 번째 필드를 모두 더한 값을 출력합니다.

Awk에서의 함수 활용

Awk에는 다양한 내장 함수가 있어 데이터를 효율적으로 처리할 수 있습니다. 예를 들어, split() 함수를 사용하여 문자열을 분할하고 배열에 저장할 수 있습니다.

echo "apple,banana,orange" | awk 'BEGIN { FS = "," } ; { split($0, fruits, ",") ; print fruits[2] }'

위의 예제는 쉼표로 구분된 문자열을 분할하여 배열에 저장하고, 두 번째 요소를 출력합니다.

결론

Awk는 강력하고 유연한 텍스트 처리 도구로, 파일에서 원하는 데이터를 추출하고 보고하는 데 유용합니다.

참고문헌: