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