awk 문법 깊이
2184 단어 awk
awk 명령 을 상세히 설명 하기 전에 awk 가 자신의 임 무 를 어떻게 수행 하 는 지 알 아 보 겠 습 니 다.names(세 줄 만 기록)라 는 파일 을 예 로 들 어 설명 하 겠 습 니 다.
Savage 100
Lee 200
Doe 300
아래 awk 명령 을 사용 합 니 다:awk 필드 를 인쇄 할 때 아래 방식 으로 print 함 수 를 사용 합 니 다.
$ awk '{print $1,$3}' names
1.awk 는 한 줄 을 입력(파일 이나 파 이 프 를 통 해)으로 사용 하고 이 줄 을 내부 변수$0 에 부여 합 니 다.기본 값 으로 줄 마다 기록 이 라 고 할 수 있 습 니 다.줄 바 꿈 문자 로 끝 납 니 다.
100
200
300
awk 명령 은 모드,조작,또는 모드 와 작업 의 조합 으로 구성 된다.
패턴 은 특정한 유형의 표현 식 으로 구 성 된 문구 입 니 다.어떤 표현 식 에 키워드 if 가 나타 나 지 않 았 지만 실제 계산 할 때 if 라 는 단 어 를 포함 하고 있다 면 이 표현 식 은 패턴 입 니 다.
작업 은 큰 괄호 안에 묶 인 한 줄 또는 여러 개의 문장 으로 구성 되 어 있 으 며,문장 사 이 는 분점 이나 줄 바 꿈 문자 로 분리 되 어 있 으 며,패턴 은 큰 괄호 에 포함 되 어 있 지 않 으 며,패턴 은 두 개의 정 슬 래 쉬 사이 에 묶 인 정규 표현 식,하나 또는 여러 개의 awk 연산 자 로 구 성 된 표현 식 으로 구성 되 어 있다.
1 파일 에서 입력
awk 의 형식 은 다음 과 같 습 니 다($는 Linux 명령 의 프롬프트 입 니 다).
$ awk 'pattern' filename
$ awk '{action}' fi1ename
$ awk 'pattern {action}' fi1ename
다음은 employees 라 는 파일 을 보 여 줍 니 다.
$ cat employees
Tom Jones 4424 5/12/66 543354
Mary Adams 5346 11/4/63 28765
Sally Chang 1654 7/22/54 650000
Billy B1ack 1683 9/23/44 336500
awk 는 모드 Mary 를 포함 하 는 모든 줄 을 인쇄 합 니 다.
$ awk '/Mary/' employees
Mary Adams 5346 11/4/63 28765
awk 는 파일 employees 의 첫 번 째 필드 를 인쇄 합 니 다.필드 는 줄 의 왼쪽 끝 에서 시작 하여 공백 문자 로 구 분 됩 니 다.
$ awk '{print $1}' employees
Tom
Mary
Sally
Billy
awk 는 파일 employees 의 첫 번 째 필드 를 인쇄 합 니 다.필드 는 줄 의 왼쪽 끝 에서 시작 하여 공백 문자 로 구 분 됩 니 다.
$ awk '/Sally/{print $1,$2}' employees
Sally Chang
2 명령 으로 입력
하나 이상 의 Linux 명령 의 출력 을 파 이 프 를 통 해 awk 에 보 낼 수 있 습 니 다.형식 은 다음 과 같 습 니 다.
$ command | awk 'pattern'
$ command | awk '{action}'
$ command | awk 'pattern {action}'
범례:파일 employees 의 한 줄 에 패턴 샐 리 가 있 을 때 awk 는 이 줄 의 첫 번 째 필드 를 인쇄 합 니 다.
$ cat employees | awk '/Sally/{print $1}'
Sally Chang
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
diff + awk를 사용하여 폴더 동기화~/tmp/wallpapers에서 누락된 'jpg' 파일만 복사하고 싶습니다. awk를 두 개의 필드 구분 기호와 함께 사용[: ] 복사 명령을 작성하려면 세 번째 및 다섯 번째 필드만 필요합니다. 이제 awk 명령...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.