웹사이트 검색

Linux/Unix의 AWK 명령


AWK는 패턴 검색 및 처리에 적합합니다. 스크립트는 하나 이상의 파일을 검색하여 일치하는 패턴을 식별하고 해당 패턴이 특정 작업을 수행하는지 확인하기 위해 실행됩니다. 이 가이드에서는 AWK Linux 명령을 살펴보고 무엇을 할 수 있는지 확인합니다.

AWK는 어떤 작업을 수행할 수 있습니까?

  • 한 줄씩 파일 스캔
  • 각 입력 줄을 필드로 분할
  • 입력 라인과 필드를 패턴과 비교
  • 일치하는 줄에서 지정된 작업 수행

AWK 명령 유용성

  • 데이터 파일 변경
  • 형식 있는 보고서 생성

awk 명령에 대한 프로그래밍 개념

  • 출력 행 형식 지정
  • 조건부 및 루프
  • 산술 및 문자열 연산

AWK 구문

$ awk options 'selection _criteria {action }' input-file > output-file

Awk 명령 예

특정 열 인쇄

두 번째와 세 번째 열을 인쇄하려면 아래 명령을 실행하십시오.

$ awk '{print $2 "\t" $3}' file.txt

파일의 모든 줄 인쇄

파일의 모든 행과 열을 나열하려면 다음을 실행하십시오.

$ awk ' {print $0}' file.txt

특정 패턴과 일치하는 모든 줄 인쇄

특정 패턴과 일치하는 줄을 인쇄하려는 경우 구문은 다음과 같습니다.

$ awk '/variable_to_be_matched/ {print $0}' file.txt

예를 들어 문자 'o'가 있는 모든 항목을 일치시키려면 구문은 다음과 같습니다.

$ awk '/o/ {print $0}' file.txt
$ awk '/e/ {print $0}' file.txt

특정 패턴과 일치하는 열 인쇄

AWK가 패턴 일치를 찾으면 명령이 전체 레코드를 실행합니다. 특정 필드만 표시하도록 명령을 실행하여 기본값을 변경할 수 있습니다. 예를 들어:

$ awk '/a/ {print $3 "\t" $4}' file.txt

일치하는 패턴 계산 및 인쇄

AWK를 사용하여 모든 패턴 일치에 대한 행 수를 세고 인쇄할 수 있습니다. 예를 들어 아래 명령은 일치하는 패턴이 나타나는 인스턴스 수를 계산합니다.

$ awk '/a/{++cnt} END {print "Count = ", cnt}' file.txt

문자 수보다 많거나 적은 행 인쇄

AWK에는 문자열의 길이를 반환하는 내장 길이 함수가 있습니다. 명령에서 $0 변수는 전체 줄을 저장하고 본문 블록이 없으면 기본 작업, 즉 인쇄 작업이 수행됩니다. 따라서 우리의 텍스트 파일에서 행이 18자 이상인 경우 비교 결과는 true이고 행은 아래와 같이 인쇄됩니다.

$ awk 'length($0) > 20' file.txt

AWK의 출력을 다른 파일에 저장

결과 출력을 저장하려면 > 리디렉션 연산자를 사용하십시오. 예를 들어

$ awk '/a/ {print $3 "\t" $4}' file.txt > Output.txt

아래와 같이 cat 명령을 사용하여 결과를 확인할 수 있습니다.

$ cat output.txt

결론

AWK는 문서의 텍스트를 조작하거나 특정 기능을 수행하는 데 사용할 수 있는 또 다른 간단한 프로그래밍 스크립트입니다. 공유 명령은 아직 알지 못하거나 만나지 못한 몇 가지 또는 많은 명령입니다.