linux 명려어 awk

특정패턴 문자열 처리하기.

$ awk
Linux 명령어 awk

Linux 명령어 awk

텍스트 데이터를 처리하고 분석하기 위한 강력한 도구

1. 자세한 설명

awk 명령어는 Linux에서 텍스트 데이터를 분석하고 처리하는 데 사용되는 강력한 프로그래밍 도구입니다. 입력 데이터를 필드 단위로 처리하며, 조건에 따라 데이터를 출력하거나 수정할 수 있습니다. 주로 로그 파일 분석, 데이터 필터링, 서식 지정된 출력 생성에 사용됩니다.

2. 사용법

  1. 파일의 특정 필드 출력
    awk '{ print $1 }' [파일 이름]
    파일의 첫 번째 필드를 출력합니다.
  2. 패턴에 맞는 데이터 처리
    awk '/패턴/ { 명령 }' [파일 이름]
    지정된 패턴에 일치하는 데이터를 처리합니다.
  3. 변수와 조건 활용
    awk '{ if ($1 > 10) print $2 }' [파일 이름]
    조건에 따라 특정 필드를 출력합니다.

3. 자세하게 설명

awk 명령어는 데이터 처리를 위해 다음과 같은 주요 기능과 특징을 제공합니다:

  • 필드 기반 처리: 공백 또는 지정된 구분자를 기준으로 데이터를 나누어 처리합니다.
  • 조건 기반 출력: 특정 조건이 충족되는 경우 데이터의 일부를 출력할 수 있습니다.
  • 내장 변수: NR(레코드 번호), NF(필드 수), $0(전체 레코드) 등을 통해 데이터를 효율적으로 처리할 수 있습니다.
  • 사용자 정의 함수: 복잡한 계산과 처리를 위한 사용자 정의 함수를 정의할 수 있습니다.
  • 텍스트 변환: 텍스트 데이터의 형식을 조정하거나 재구성할 수 있습니다.

4. 자세한 명령어 사용법

다음은 awk 명령어의 다양한 사용 예제입니다:

# 파일의 첫 번째 필드 출력
$ awk '{ print $1 }' data.txt

# 파일의 두 번째 필드 출력
$ awk '{ print $2 }' data.txt

# 특정 패턴이 있는 줄 출력
$ awk '/ERROR/ { print $0 }' log.txt

# 필드 간 구분자 변경
$ awk 'BEGIN { FS=","; OFS="|" } { print $1, $2 }' data.csv

# 조건에 따른 데이터 출력
$ awk '{ if ($3 > 100) print $1, $2 }' data.txt

# 레코드 번호와 함께 출력
$ awk '{ print NR, $0 }' data.txt

# 필드 수 확인
$ awk '{ print NF }' data.txt

# 필드와 레코드 길이 계산
$ awk '{ print $1, length($0) }' data.txt

# BEGIN 및 END 블록 사용
$ awk 'BEGIN { print "시작" } { print $1 } END { print "끝" }' data.txt

# 사용자 정의 함수 활용
$ awk 'function square(x) { return x * x } { print square($1) }' data.txt

# 특정 조건으로 요약
$ awk '{ sum += $3 } END { print "합계:", sum }' data.txt

# 특정 열 필터링하여 파일로 저장
$ awk '{ print $1, $3 }' data.txt > output.txt

# 특정 구분자를 사용한 데이터 처리
$ awk -F"," '{ print $1, $2 }' data.csv

# 로그 파일에서 특정 데이터 추출
$ awk '/200/ { print $0 }' access.log

# 숫자의 합계 계산
$ awk '{ sum += $2 } END { print "총합:", sum }' numbers.txt

# 실행 가능한 스크립트 생성
#!/bin/bash
awk '{ print $1, $NF }' data.txt

# 결과를 JSON으로 변환
$ awk '{ print "{ \"column1\": \"" $1 "\", \"column2\": \"" $2 "\" }" }' data.txt | jq

# 반복문 내 사용
for file in *.txt; do
  awk '{ print $1, $2 }' $file >> combined_output.txt
done
            

위의 예제는 awk 명령어를 사용하여 데이터를 처리하고 분석하는 다양한 방법을 보여줍니다.

© 2025 Linux 명령어 설명

Categories:

No responses yet

답글 남기기