Awk는 데이터를 조작하고 보고서를 생성하는 데 사용되는 스크립트 언어입니다. awk 명령 프로그래밍 언어는 컴파일이 필요하지 않으며 사용자가 변수, 숫자 함수, 문자열 함수 및 논리 연산자를 사용할 수 있도록 합니다.
Awk는 프로그래머가 문서의 각 줄에서 검색할 텍스트 패턴과 일치 항목이 발견될 때 수행할 작업을 정의하는 명령문 형식으로 작지만 효과적인 프로그램을 작성할 수 있도록 하는 유틸리티입니다. 선. Awk는 주로 패턴 스캐닝 및 처리에 사용됩니다. 하나 이상의 파일을 검색하여 지정된 패턴과 일치하는 행이 포함되어 있는지 확인한 다음 관련 작업을 수행합니다.
Awk는 개발자 Aho, Weinberger, Kernighan의 이름을 따서 만든 것입니다.
100만 중 10은 뭐야?
AWK로 무엇을 할 수 있나요?
1. AWK 작업:
(a) 파일을 한 줄씩 검사합니다.
(b) 각 입력 라인을 필드로 분할합니다.
(c) 입력 라인/필드를 패턴과 비교합니다.
(d) 일치하는 라인에서 작업을 수행합니다.
2. 다음에 유용합니다:
(a) 데이터 파일 변환
(b) 형식화된 보고서 생성
3. 프로그래밍 구성:
(a) 출력 라인 포맷
(b) 산술 및 문자열 연산
(c) 조건부 및 루프
통사론:
awk options 'selection _criteria {action }' input-file>출력 파일> 옵션:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
샘플 명령
예:
아래의 모든 경우에 대한 입력 파일로 다음 텍스트 파일을 고려하십시오.
$cat>직원.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
1. Awk의 기본 동작: 기본적으로 Awk는 지정된 파일의 모든 데이터 줄을 인쇄합니다.
$ awk '{print}' employee.txt> 산출:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
위의 예에서는 패턴이 제공되지 않습니다. 따라서 작업은 모든 라인에 적용 가능합니다. 인수 없이 Action print 는 기본적으로 전체 줄을 인쇄하므로 파일의 모든 줄을 실패 없이 인쇄합니다.
2. 주어진 패턴과 일치하는 라인을 인쇄하십시오.
$ awk '/manager/ {print}' employee.txt> 산출:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
위의 예에서 awk 명령은 'manager'와 일치하는 모든 행을 인쇄합니다.
3. 라인을 필드로 분할하기: 각 레코드, 즉 라인에 대해 awk 명령은 기본적으로 공백 문자로 구분된 레코드를 분할하여 $n 변수에 저장합니다. 라인에 4개의 단어가 있으면 각각 , , 및 에 저장됩니다. 또한 Awk는 데이터를 조작하고 보고서를 생성하는 데 사용되는 스크립트 언어입니다. awk 명령 프로그래밍 언어는 컴파일이 필요하지 않으며 사용자가 변수, 숫자 함수, 문자열 함수 및 논리 연산자를 사용할 수 있도록 합니다. Awk는 프로그래머가 문서의 각 줄에서 검색할 텍스트 패턴과 일치 항목이 발견될 때 수행할 작업을 정의하는 명령문 형식으로 작지만 효과적인 프로그램을 작성할 수 있도록 하는 유틸리티입니다. 선. Awk는 주로 패턴 스캐닝 및 처리에 사용됩니다. 하나 이상의 파일을 검색하여 지정된 패턴과 일치하는 행이 포함되어 있는지 확인한 다음 관련 작업을 수행합니다. Awk는 개발자 Aho, Weinberger, Kernighan의 이름을 따서 만든 것입니다. AWK로 무엇을 할 수 있나요? 1. AWK 작업: 2. 다음에 유용합니다: 3. 프로그래밍 구성: 통사론: 옵션: 샘플 명령 예: 아래의 모든 경우에 대한 입력 파일로 다음 텍스트 파일을 고려하십시오. 1. Awk의 기본 동작: 기본적으로 Awk는 지정된 파일의 모든 데이터 줄을 인쇄합니다. 산출: 위의 예에서는 패턴이 제공되지 않습니다. 따라서 작업은 모든 라인에 적용 가능합니다. 인수 없이 Action print 는 기본적으로 전체 줄을 인쇄하므로 파일의 모든 줄을 실패 없이 인쇄합니다. 2. 주어진 패턴과 일치하는 라인을 인쇄하십시오. 산출: 위의 예에서 awk 명령은 'manager'와 일치하는 모든 행을 인쇄합니다. 3. 라인을 필드로 분할하기: 각 레코드, 즉 라인에 대해 awk 명령은 기본적으로 공백 문자로 구분된 레코드를 분할하여 $n 변수에 저장합니다. 라인에 4개의 단어가 있으면 각각 $1, $2, $3 및 $4에 저장됩니다. 또한 $0은 전체 줄을 나타냅니다. 산출: 위의 예에서 $1과 $4는 각각 이름 및 급여 필드를 나타냅니다. Awk의 내장 변수 Awk의 내장 변수에는 텍스트 줄을 필드라고 하는 개별 단어나 조각으로 나누는 필드 변수($1, $2, $3 등($0은 전체 줄))가 포함됩니다. 예: NR 내장 변수 사용(라인 번호 표시) 산출: 위의 예에서 NR을 사용하는 awk 명령은 줄 번호와 함께 모든 줄을 인쇄합니다. NF 내장 변수 사용(마지막 필드 표시) 산출: 위의 예에서 $1은 이름을 나타내고 $NF는 급여를 나타냅니다. $NF를 사용하여 Salary를 얻을 수 있습니다. 여기서 $NF는 마지막 필드를 나타냅니다. NR 내장 변수의 또 다른 용도(3~6행 표시) 산출: 더 많은 예 지정된 텍스트 파일의 경우: 1) geeksforgeeks.txt의 각 줄에서 –로 구분된 행 번호(NR)와 함께 첫 번째 항목을 인쇄하려면: 2) geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면: 질문은 다음과 같아야 합니다. - geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면: 3) 비어 있지 않은 줄이 있는 경우 이를 인쇄하려면 여기서 NF는 0 이상이어야 하며 사용자는 줄 번호도 인쇄해야 합니다. 정답 : awk 'NF == 0 {print NR}' geeksforgeeks.txt 또는 awk 'NF <= 0 {인쇄 NR}' geeksforgeeks.txt 4) 파일에 존재하는 가장 긴 줄의 길이를 찾으려면: 5) 파일의 줄 수를 계산하려면 다음을 수행하십시오. 6) 10자가 넘는 줄을 인쇄하는 경우: 7) 특정 열의 문자열을 찾거나 확인하려면 다음을 수행하십시오. 8) 1부터 n까지 첫 번째 숫자의 제곱을 인쇄하려면 6이라고 말하세요.
(a) 파일을 한 줄씩 검사합니다.
(b) 각 입력 라인을 필드로 분할합니다.
(c) 입력 라인/필드를 패턴과 비교합니다.
(d) 일치하는 라인에서 작업을 수행합니다.
(a) 데이터 파일 변환
(b) 형식화된 보고서 생성
(a) 출력 라인 포맷
(b) 산술 및 문자열 연산
(c) 조건부 및 루프awk options 'selection _criteria {action }' input-file>출력 파일> -f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
$cat>직원.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
$ awk '{print}' employee.txt> ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
$ awk '/manager/ {print}' employee.txt> ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
$ awk '{print $1,$4}' employee.txt> ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
NR: NR 명령은 입력 레코드 수의 현재 카운트를 유지합니다. 레코드는 일반적으로 행이라는 점을 기억하십시오. Awk 명령은 파일의 각 레코드에 대해 패턴/작업 문을 한 번씩 수행합니다. NF: NF 명령은 현재 입력 레코드 내의 필드 수를 유지합니다. FS: FS 명령에는 입력 라인에서 필드를 나누는 데 사용되는 필드 구분 문자가 포함되어 있습니다. 기본값은 공백, 즉 공백과 탭 문자를 의미합니다. FS는 필드 구분 기호를 변경하기 위해 다른 문자(일반적으로 BEGIN)에 다시 할당될 수 있습니다. RS: RS 명령은 현재 레코드 구분 문자를 저장합니다. 기본적으로 입력 행은 입력 레코드이므로 기본 레코드 구분 문자는 개행 문자입니다. OFS: OFS 명령은 Awk가 인쇄할 때 필드를 구분하는 출력 필드 구분 기호를 저장합니다. 기본값은 공백입니다. print에 쉼표로 구분된 여러 매개변수가 있을 때마다 각 매개변수 사이에 OFS 값이 인쇄됩니다. ORS: ORS 명령은 Awk가 인쇄할 때 출력 라인을 구분하는 출력 레코드 구분 기호를 저장합니다. 기본값은 개행 문자입니다. print는 인쇄하도록 지정된 내용의 끝에 ORS의 내용을 자동으로 출력합니다.
$ awk '{print NR,$0}' employee.txt> 1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
$ awk '{print $1,$NF}' employee.txt> ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
$ awk 'NF <0' geeksforgeeks.txt>
0>
$ awk '{ if (length($0)>최대) 최대 = 길이($0) } END { 최대 인쇄 }' geeksforgeeks.txt> 13>
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> $ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
$ awk '{print ,}' employee.txt> 산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
위의 예에서 과 는 각각 이름 및 급여 필드를 나타냅니다.
Awk의 내장 변수
Awk의 내장 변수에는 텍스트 줄을 필드라고 하는 개별 단어나 조각으로 나누는 필드 변수(, , 등( Awk는 데이터를 조작하고 보고서를 생성하는 데 사용되는 스크립트 언어입니다. awk 명령 프로그래밍 언어는 컴파일이 필요하지 않으며 사용자가 변수, 숫자 함수, 문자열 함수 및 논리 연산자를 사용할 수 있도록 합니다. Awk는 프로그래머가 문서의 각 줄에서 검색할 텍스트 패턴과 일치 항목이 발견될 때 수행할 작업을 정의하는 명령문 형식으로 작지만 효과적인 프로그램을 작성할 수 있도록 하는 유틸리티입니다. 선. Awk는 주로 패턴 스캐닝 및 처리에 사용됩니다. 하나 이상의 파일을 검색하여 지정된 패턴과 일치하는 행이 포함되어 있는지 확인한 다음 관련 작업을 수행합니다. Awk는 개발자 Aho, Weinberger, Kernighan의 이름을 따서 만든 것입니다. AWK로 무엇을 할 수 있나요? 1. AWK 작업: 2. 다음에 유용합니다: 3. 프로그래밍 구성: 통사론: 옵션: 샘플 명령 예: 아래의 모든 경우에 대한 입력 파일로 다음 텍스트 파일을 고려하십시오. 1. Awk의 기본 동작: 기본적으로 Awk는 지정된 파일의 모든 데이터 줄을 인쇄합니다. 산출: 위의 예에서는 패턴이 제공되지 않습니다. 따라서 작업은 모든 라인에 적용 가능합니다. 인수 없이 Action print 는 기본적으로 전체 줄을 인쇄하므로 파일의 모든 줄을 실패 없이 인쇄합니다. 2. 주어진 패턴과 일치하는 라인을 인쇄하십시오. 산출: 위의 예에서 awk 명령은 'manager'와 일치하는 모든 행을 인쇄합니다. 3. 라인을 필드로 분할하기: 각 레코드, 즉 라인에 대해 awk 명령은 기본적으로 공백 문자로 구분된 레코드를 분할하여 $n 변수에 저장합니다. 라인에 4개의 단어가 있으면 각각 $1, $2, $3 및 $4에 저장됩니다. 또한 $0은 전체 줄을 나타냅니다. 산출: 위의 예에서 $1과 $4는 각각 이름 및 급여 필드를 나타냅니다. Awk의 내장 변수 Awk의 내장 변수에는 텍스트 줄을 필드라고 하는 개별 단어나 조각으로 나누는 필드 변수($1, $2, $3 등($0은 전체 줄))가 포함됩니다. 예: NR 내장 변수 사용(라인 번호 표시) 산출: 위의 예에서 NR을 사용하는 awk 명령은 줄 번호와 함께 모든 줄을 인쇄합니다. NF 내장 변수 사용(마지막 필드 표시) 산출: 위의 예에서 $1은 이름을 나타내고 $NF는 급여를 나타냅니다. $NF를 사용하여 Salary를 얻을 수 있습니다. 여기서 $NF는 마지막 필드를 나타냅니다. NR 내장 변수의 또 다른 용도(3~6행 표시) 산출: 더 많은 예 지정된 텍스트 파일의 경우: 1) geeksforgeeks.txt의 각 줄에서 –로 구분된 행 번호(NR)와 함께 첫 번째 항목을 인쇄하려면: 2) geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면: 질문은 다음과 같아야 합니다. - geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면: 3) 비어 있지 않은 줄이 있는 경우 이를 인쇄하려면 여기서 NF는 0 이상이어야 하며 사용자는 줄 번호도 인쇄해야 합니다. 정답 : awk 'NF == 0 {print NR}' geeksforgeeks.txt 또는 awk 'NF <= 0 {인쇄 NR}' geeksforgeeks.txt 4) 파일에 존재하는 가장 긴 줄의 길이를 찾으려면: 5) 파일의 줄 수를 계산하려면 다음을 수행하십시오. 6) 10자가 넘는 줄을 인쇄하는 경우: 7) 특정 열의 문자열을 찾거나 확인하려면 다음을 수행하십시오. 8) 1부터 n까지 첫 번째 숫자의 제곱을 인쇄하려면 6이라고 말하세요.
(a) 파일을 한 줄씩 검사합니다.
(b) 각 입력 라인을 필드로 분할합니다.
(c) 입력 라인/필드를 패턴과 비교합니다.
(d) 일치하는 라인에서 작업을 수행합니다.
(a) 데이터 파일 변환
(b) 형식화된 보고서 생성
(a) 출력 라인 포맷
(b) 산술 및 문자열 연산
(c) 조건부 및 루프awk options 'selection _criteria {action }' input-file>출력 파일> -f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
$cat>직원.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
$ awk '{print}' employee.txt> ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
$ awk '/manager/ {print}' employee.txt> ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
$ awk '{print $1,$4}' employee.txt> ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
NR: NR 명령은 입력 레코드 수의 현재 카운트를 유지합니다. 레코드는 일반적으로 행이라는 점을 기억하십시오. Awk 명령은 파일의 각 레코드에 대해 패턴/작업 문을 한 번씩 수행합니다. NF: NF 명령은 현재 입력 레코드 내의 필드 수를 유지합니다. FS: FS 명령에는 입력 라인에서 필드를 나누는 데 사용되는 필드 구분 문자가 포함되어 있습니다. 기본값은 공백, 즉 공백과 탭 문자를 의미합니다. FS는 필드 구분 기호를 변경하기 위해 다른 문자(일반적으로 BEGIN)에 다시 할당될 수 있습니다. RS: RS 명령은 현재 레코드 구분 문자를 저장합니다. 기본적으로 입력 행은 입력 레코드이므로 기본 레코드 구분 문자는 개행 문자입니다. OFS: OFS 명령은 Awk가 인쇄할 때 필드를 구분하는 출력 필드 구분 기호를 저장합니다. 기본값은 공백입니다. print에 쉼표로 구분된 여러 매개변수가 있을 때마다 각 매개변수 사이에 OFS 값이 인쇄됩니다. ORS: ORS 명령은 Awk가 인쇄할 때 출력 라인을 구분하는 출력 레코드 구분 기호를 저장합니다. 기본값은 개행 문자입니다. print는 인쇄하도록 지정된 내용의 끝에 ORS의 내용을 자동으로 출력합니다.
$ awk '{print NR,$0}' employee.txt> 1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
$ awk '{print $1,$NF}' employee.txt> ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
$ awk 'NF <0' geeksforgeeks.txt>
0>
$ awk '{ if (length($0)>최대) 최대 = 길이($0) } END { 최대 인쇄 }' geeksforgeeks.txt> 13>
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> $ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
- NR: NR 명령은 입력 레코드 수의 현재 카운트를 유지합니다. 레코드는 일반적으로 행이라는 점을 기억하십시오. Awk 명령은 파일의 각 레코드에 대해 패턴/작업 문을 한 번씩 수행합니다. NF: NF 명령은 현재 입력 레코드 내의 필드 수를 유지합니다. FS: FS 명령에는 입력 라인에서 필드를 나누는 데 사용되는 필드 구분 문자가 포함되어 있습니다. 기본값은 공백, 즉 공백과 탭 문자를 의미합니다. FS는 필드 구분 기호를 변경하기 위해 다른 문자(일반적으로 BEGIN)에 다시 할당될 수 있습니다. RS: RS 명령은 현재 레코드 구분 문자를 저장합니다. 기본적으로 입력 행은 입력 레코드이므로 기본 레코드 구분 문자는 개행 문자입니다. OFS: OFS 명령은 Awk가 인쇄할 때 필드를 구분하는 출력 필드 구분 기호를 저장합니다. 기본값은 공백입니다. print에 쉼표로 구분된 여러 매개변수가 있을 때마다 각 매개변수 사이에 OFS 값이 인쇄됩니다. ORS: ORS 명령은 Awk가 인쇄할 때 출력 라인을 구분하는 출력 레코드 구분 기호를 저장합니다. 기본값은 개행 문자입니다. print는 인쇄하도록 지정된 내용의 끝에 ORS의 내용을 자동으로 출력합니다.
예:
NR 내장 변수 사용(라인 번호 표시)
$ awk '{print NR,Awk는 데이터를 조작하고 보고서를 생성하는 데 사용되는 스크립트 언어입니다. awk 명령 프로그래밍 언어는 컴파일이 필요하지 않으며 사용자가 변수, 숫자 함수, 문자열 함수 및 논리 연산자를 사용할 수 있도록 합니다.
Awk는 프로그래머가 문서의 각 줄에서 검색할 텍스트 패턴과 일치 항목이 발견될 때 수행할 작업을 정의하는 명령문 형식으로 작지만 효과적인 프로그램을 작성할 수 있도록 하는 유틸리티입니다. 선. Awk는 주로 패턴 스캐닝 및 처리에 사용됩니다. 하나 이상의 파일을 검색하여 지정된 패턴과 일치하는 행이 포함되어 있는지 확인한 다음 관련 작업을 수행합니다.
Awk는 개발자 Aho, Weinberger, Kernighan의 이름을 따서 만든 것입니다.
AWK로 무엇을 할 수 있나요?
1. AWK 작업:
(a) 파일을 한 줄씩 검사합니다.
(b) 각 입력 라인을 필드로 분할합니다.
(c) 입력 라인/필드를 패턴과 비교합니다.
(d) 일치하는 라인에서 작업을 수행합니다.
2. 다음에 유용합니다:
(a) 데이터 파일 변환
(b) 형식화된 보고서 생성
3. 프로그래밍 구성:
(a) 출력 라인 포맷
(b) 산술 및 문자열 연산
(c) 조건부 및 루프
통사론:
awk options 'selection _criteria {action }' input-file>출력 파일> 옵션:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
샘플 명령
예:
아래의 모든 경우에 대한 입력 파일로 다음 텍스트 파일을 고려하십시오.
$cat>직원.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
1. Awk의 기본 동작: 기본적으로 Awk는 지정된 파일의 모든 데이터 줄을 인쇄합니다.
$ awk '{print}' employee.txt> 산출:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
위의 예에서는 패턴이 제공되지 않습니다. 따라서 작업은 모든 라인에 적용 가능합니다. 인수 없이 Action print 는 기본적으로 전체 줄을 인쇄하므로 파일의 모든 줄을 실패 없이 인쇄합니다.
2. 주어진 패턴과 일치하는 라인을 인쇄하십시오.
$ awk '/manager/ {print}' employee.txt> 산출:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
위의 예에서 awk 명령은 'manager'와 일치하는 모든 행을 인쇄합니다.
3. 라인을 필드로 분할하기: 각 레코드, 즉 라인에 대해 awk 명령은 기본적으로 공백 문자로 구분된 레코드를 분할하여 $n 변수에 저장합니다. 라인에 4개의 단어가 있으면 각각 $1, $2, $3 및 $4에 저장됩니다. 또한 $0은 전체 줄을 나타냅니다.
$ awk '{print $1,$4}' employee.txt> 산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
위의 예에서 $1과 $4는 각각 이름 및 급여 필드를 나타냅니다.
Awk의 내장 변수
Awk의 내장 변수에는 텍스트 줄을 필드라고 하는 개별 단어나 조각으로 나누는 필드 변수($1, $2, $3 등($0은 전체 줄))가 포함됩니다.
NR: NR 명령은 입력 레코드 수의 현재 카운트를 유지합니다. 레코드는 일반적으로 행이라는 점을 기억하십시오. Awk 명령은 파일의 각 레코드에 대해 패턴/작업 문을 한 번씩 수행합니다. NF: NF 명령은 현재 입력 레코드 내의 필드 수를 유지합니다. FS: FS 명령에는 입력 라인에서 필드를 나누는 데 사용되는 필드 구분 문자가 포함되어 있습니다. 기본값은 공백, 즉 공백과 탭 문자를 의미합니다. FS는 필드 구분 기호를 변경하기 위해 다른 문자(일반적으로 BEGIN)에 다시 할당될 수 있습니다. RS: RS 명령은 현재 레코드 구분 문자를 저장합니다. 기본적으로 입력 행은 입력 레코드이므로 기본 레코드 구분 문자는 개행 문자입니다. OFS: OFS 명령은 Awk가 인쇄할 때 필드를 구분하는 출력 필드 구분 기호를 저장합니다. 기본값은 공백입니다. print에 쉼표로 구분된 여러 매개변수가 있을 때마다 각 매개변수 사이에 OFS 값이 인쇄됩니다. ORS: ORS 명령은 Awk가 인쇄할 때 출력 라인을 구분하는 출력 레코드 구분 기호를 저장합니다. 기본값은 개행 문자입니다. print는 인쇄하도록 지정된 내용의 끝에 ORS의 내용을 자동으로 출력합니다.
예:
NR 내장 변수 사용(라인 번호 표시)
$ awk '{print NR,$0}' employee.txt> 산출:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
위의 예에서 NR을 사용하는 awk 명령은 줄 번호와 함께 모든 줄을 인쇄합니다.
NF 내장 변수 사용(마지막 필드 표시)
$ awk '{print $1,$NF}' employee.txt> 산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
위의 예에서 $1은 이름을 나타내고 $NF는 급여를 나타냅니다. $NF를 사용하여 Salary를 얻을 수 있습니다. 여기서 $NF는 마지막 필드를 나타냅니다.
NR 내장 변수의 또 다른 용도(3~6행 표시)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> 산출:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
더 많은 예
지정된 텍스트 파일의 경우:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) geeksforgeeks.txt의 각 줄에서 –로 구분된 행 번호(NR)와 함께 첫 번째 항목을 인쇄하려면:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
질문은 다음과 같아야 합니다. - geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) 비어 있지 않은 줄이 있는 경우 이를 인쇄하려면
$ awk 'NF <0' geeksforgeeks.txt>
여기서 NF는 0 이상이어야 하며 사용자는 줄 번호도 인쇄해야 합니다.
정답 : awk 'NF == 0 {print NR}' geeksforgeeks.txt
또는
awk 'NF <= 0 {인쇄 NR}' geeksforgeeks.txt
0>
4) 파일에 존재하는 가장 긴 줄의 길이를 찾으려면:
$ awk '{ if (length($0)>최대) 최대 = 길이($0) } END { 최대 인쇄 }' geeksforgeeks.txt> 13>
5) 파일의 줄 수를 계산하려면 다음을 수행하십시오.
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) 10자가 넘는 줄을 인쇄하는 경우:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) 특정 열의 문자열을 찾거나 확인하려면 다음을 수행하십시오.
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) 1부터 n까지 첫 번째 숫자의 제곱을 인쇄하려면 6이라고 말하세요.
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
}' employee.txt> 산출:
파이썬 소수점 이하 2자리까지 출력
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
위의 예에서 NR을 사용하는 awk 명령은 줄 번호와 함께 모든 줄을 인쇄합니다.
NF 내장 변수 사용(마지막 필드 표시)
$ awk '{print ,$NF}' employee.txt> 산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
위의 예에서 은 이름을 나타내고 $NF는 급여를 나타냅니다. $NF를 사용하여 Salary를 얻을 수 있습니다. 여기서 $NF는 마지막 필드를 나타냅니다.
NR 내장 변수의 또 다른 용도(3~6행 표시)
$ awk 'NR==3, NR==6 {print NR,Awk는 데이터를 조작하고 보고서를 생성하는 데 사용되는 스크립트 언어입니다. awk 명령 프로그래밍 언어는 컴파일이 필요하지 않으며 사용자가 변수, 숫자 함수, 문자열 함수 및 논리 연산자를 사용할 수 있도록 합니다.
Awk는 프로그래머가 문서의 각 줄에서 검색할 텍스트 패턴과 일치 항목이 발견될 때 수행할 작업을 정의하는 명령문 형식으로 작지만 효과적인 프로그램을 작성할 수 있도록 하는 유틸리티입니다. 선. Awk는 주로 패턴 스캐닝 및 처리에 사용됩니다. 하나 이상의 파일을 검색하여 지정된 패턴과 일치하는 행이 포함되어 있는지 확인한 다음 관련 작업을 수행합니다.
Awk는 개발자 Aho, Weinberger, Kernighan의 이름을 따서 만든 것입니다.
AWK로 무엇을 할 수 있나요?
1. AWK 작업:
(a) 파일을 한 줄씩 검사합니다.
(b) 각 입력 라인을 필드로 분할합니다.
(c) 입력 라인/필드를 패턴과 비교합니다.
(d) 일치하는 라인에서 작업을 수행합니다.
2. 다음에 유용합니다:
(a) 데이터 파일 변환
(b) 형식화된 보고서 생성
3. 프로그래밍 구성:
(a) 출력 라인 포맷
(b) 산술 및 문자열 연산
(c) 조건부 및 루프
통사론:
awk options 'selection _criteria {action }' input-file>출력 파일> 옵션:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
샘플 명령
예:
아래의 모든 경우에 대한 입력 파일로 다음 텍스트 파일을 고려하십시오.
$cat>직원.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
1. Awk의 기본 동작: 기본적으로 Awk는 지정된 파일의 모든 데이터 줄을 인쇄합니다.
$ awk '{print}' employee.txt> 산출:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
위의 예에서는 패턴이 제공되지 않습니다. 따라서 작업은 모든 라인에 적용 가능합니다. 인수 없이 Action print 는 기본적으로 전체 줄을 인쇄하므로 파일의 모든 줄을 실패 없이 인쇄합니다.
2. 주어진 패턴과 일치하는 라인을 인쇄하십시오.
$ awk '/manager/ {print}' employee.txt> 산출:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
위의 예에서 awk 명령은 'manager'와 일치하는 모든 행을 인쇄합니다.
3. 라인을 필드로 분할하기: 각 레코드, 즉 라인에 대해 awk 명령은 기본적으로 공백 문자로 구분된 레코드를 분할하여 $n 변수에 저장합니다. 라인에 4개의 단어가 있으면 각각 $1, $2, $3 및 $4에 저장됩니다. 또한 $0은 전체 줄을 나타냅니다.
$ awk '{print $1,$4}' employee.txt> 산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
위의 예에서 $1과 $4는 각각 이름 및 급여 필드를 나타냅니다.
Awk의 내장 변수
Awk의 내장 변수에는 텍스트 줄을 필드라고 하는 개별 단어나 조각으로 나누는 필드 변수($1, $2, $3 등($0은 전체 줄))가 포함됩니다.
NR: NR 명령은 입력 레코드 수의 현재 카운트를 유지합니다. 레코드는 일반적으로 행이라는 점을 기억하십시오. Awk 명령은 파일의 각 레코드에 대해 패턴/작업 문을 한 번씩 수행합니다. NF: NF 명령은 현재 입력 레코드 내의 필드 수를 유지합니다. FS: FS 명령에는 입력 라인에서 필드를 나누는 데 사용되는 필드 구분 문자가 포함되어 있습니다. 기본값은 공백, 즉 공백과 탭 문자를 의미합니다. FS는 필드 구분 기호를 변경하기 위해 다른 문자(일반적으로 BEGIN)에 다시 할당될 수 있습니다. RS: RS 명령은 현재 레코드 구분 문자를 저장합니다. 기본적으로 입력 행은 입력 레코드이므로 기본 레코드 구분 문자는 개행 문자입니다. OFS: OFS 명령은 Awk가 인쇄할 때 필드를 구분하는 출력 필드 구분 기호를 저장합니다. 기본값은 공백입니다. print에 쉼표로 구분된 여러 매개변수가 있을 때마다 각 매개변수 사이에 OFS 값이 인쇄됩니다. ORS: ORS 명령은 Awk가 인쇄할 때 출력 라인을 구분하는 출력 레코드 구분 기호를 저장합니다. 기본값은 개행 문자입니다. print는 인쇄하도록 지정된 내용의 끝에 ORS의 내용을 자동으로 출력합니다.
예:
NR 내장 변수 사용(라인 번호 표시)
$ awk '{print NR,$0}' employee.txt> 산출:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
위의 예에서 NR을 사용하는 awk 명령은 줄 번호와 함께 모든 줄을 인쇄합니다.
NF 내장 변수 사용(마지막 필드 표시)
$ awk '{print $1,$NF}' employee.txt> 산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
위의 예에서 $1은 이름을 나타내고 $NF는 급여를 나타냅니다. $NF를 사용하여 Salary를 얻을 수 있습니다. 여기서 $NF는 마지막 필드를 나타냅니다.
NR 내장 변수의 또 다른 용도(3~6행 표시)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> 산출:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
더 많은 예
지정된 텍스트 파일의 경우:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) geeksforgeeks.txt의 각 줄에서 –로 구분된 행 번호(NR)와 함께 첫 번째 항목을 인쇄하려면:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
질문은 다음과 같아야 합니다. - geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) 비어 있지 않은 줄이 있는 경우 이를 인쇄하려면
$ awk 'NF <0' geeksforgeeks.txt>
여기서 NF는 0 이상이어야 하며 사용자는 줄 번호도 인쇄해야 합니다.
정답 : awk 'NF == 0 {print NR}' geeksforgeeks.txt
또는
awk 'NF <= 0 {인쇄 NR}' geeksforgeeks.txt
0>
4) 파일에 존재하는 가장 긴 줄의 길이를 찾으려면:
$ awk '{ if (length($0)>최대) 최대 = 길이($0) } END { 최대 인쇄 }' geeksforgeeks.txt> 13>
5) 파일의 줄 수를 계산하려면 다음을 수행하십시오.
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) 10자가 넘는 줄을 인쇄하는 경우:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) 특정 열의 문자열을 찾거나 확인하려면 다음을 수행하십시오.
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) 1부터 n까지 첫 번째 숫자의 제곱을 인쇄하려면 6이라고 말하세요.
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
}' employee.txt> 산출:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
더 많은 예
지정된 텍스트 파일의 경우:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) geeksforgeeks.txt의 각 줄에서 –로 구분된 행 번호(NR)와 함께 첫 번째 항목을 인쇄하려면:
문자열.하위 문자열 자바
$ awk '{print NR '- ' }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
질문은 다음과 같아야 합니다. - geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
$ awk '{print }' geeksforgeeks.txt> B A12 B6 M42>
3) 비어 있지 않은 줄이 있는 경우 이를 인쇄하려면
$ awk 'NF <0' geeksforgeeks.txt>
여기서 NF는 0 이상이어야 하며 사용자는 줄 번호도 인쇄해야 합니다.
정답 : awk 'NF == 0 {print NR}' geeksforgeeks.txt
또는
awk 'NF <= 0 {인쇄 NR}' geeksforgeeks.txt
0>
4) 파일에 존재하는 가장 긴 줄의 길이를 찾으려면:
$ awk '{ if (length(Awk는 데이터를 조작하고 보고서를 생성하는 데 사용되는 스크립트 언어입니다. awk 명령 프로그래밍 언어는 컴파일이 필요하지 않으며 사용자가 변수, 숫자 함수, 문자열 함수 및 논리 연산자를 사용할 수 있도록 합니다.
Awk는 프로그래머가 문서의 각 줄에서 검색할 텍스트 패턴과 일치 항목이 발견될 때 수행할 작업을 정의하는 명령문 형식으로 작지만 효과적인 프로그램을 작성할 수 있도록 하는 유틸리티입니다. 선. Awk는 주로 패턴 스캐닝 및 처리에 사용됩니다. 하나 이상의 파일을 검색하여 지정된 패턴과 일치하는 행이 포함되어 있는지 확인한 다음 관련 작업을 수행합니다.
Awk는 개발자 Aho, Weinberger, Kernighan의 이름을 따서 만든 것입니다.
AWK로 무엇을 할 수 있나요?
1. AWK 작업:
(a) 파일을 한 줄씩 검사합니다.
(b) 각 입력 라인을 필드로 분할합니다.
(c) 입력 라인/필드를 패턴과 비교합니다.
(d) 일치하는 라인에서 작업을 수행합니다.
2. 다음에 유용합니다:
(a) 데이터 파일 변환
(b) 형식화된 보고서 생성
3. 프로그래밍 구성:
(a) 출력 라인 포맷
(b) 산술 및 문자열 연산
(c) 조건부 및 루프
통사론:
awk options 'selection _criteria {action }' input-file>출력 파일> 옵션:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
샘플 명령
예:
아래의 모든 경우에 대한 입력 파일로 다음 텍스트 파일을 고려하십시오.
$cat>직원.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
1. Awk의 기본 동작: 기본적으로 Awk는 지정된 파일의 모든 데이터 줄을 인쇄합니다.
$ awk '{print}' employee.txt> 산출:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
위의 예에서는 패턴이 제공되지 않습니다. 따라서 작업은 모든 라인에 적용 가능합니다. 인수 없이 Action print 는 기본적으로 전체 줄을 인쇄하므로 파일의 모든 줄을 실패 없이 인쇄합니다.
2. 주어진 패턴과 일치하는 라인을 인쇄하십시오.
$ awk '/manager/ {print}' employee.txt> 산출:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
위의 예에서 awk 명령은 'manager'와 일치하는 모든 행을 인쇄합니다.
3. 라인을 필드로 분할하기: 각 레코드, 즉 라인에 대해 awk 명령은 기본적으로 공백 문자로 구분된 레코드를 분할하여 $n 변수에 저장합니다. 라인에 4개의 단어가 있으면 각각 $1, $2, $3 및 $4에 저장됩니다. 또한 $0은 전체 줄을 나타냅니다.
$ awk '{print $1,$4}' employee.txt> 산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
위의 예에서 $1과 $4는 각각 이름 및 급여 필드를 나타냅니다.
Awk의 내장 변수
Awk의 내장 변수에는 텍스트 줄을 필드라고 하는 개별 단어나 조각으로 나누는 필드 변수($1, $2, $3 등($0은 전체 줄))가 포함됩니다.
NR: NR 명령은 입력 레코드 수의 현재 카운트를 유지합니다. 레코드는 일반적으로 행이라는 점을 기억하십시오. Awk 명령은 파일의 각 레코드에 대해 패턴/작업 문을 한 번씩 수행합니다. NF: NF 명령은 현재 입력 레코드 내의 필드 수를 유지합니다. FS: FS 명령에는 입력 라인에서 필드를 나누는 데 사용되는 필드 구분 문자가 포함되어 있습니다. 기본값은 공백, 즉 공백과 탭 문자를 의미합니다. FS는 필드 구분 기호를 변경하기 위해 다른 문자(일반적으로 BEGIN)에 다시 할당될 수 있습니다. RS: RS 명령은 현재 레코드 구분 문자를 저장합니다. 기본적으로 입력 행은 입력 레코드이므로 기본 레코드 구분 문자는 개행 문자입니다. OFS: OFS 명령은 Awk가 인쇄할 때 필드를 구분하는 출력 필드 구분 기호를 저장합니다. 기본값은 공백입니다. print에 쉼표로 구분된 여러 매개변수가 있을 때마다 각 매개변수 사이에 OFS 값이 인쇄됩니다. ORS: ORS 명령은 Awk가 인쇄할 때 출력 라인을 구분하는 출력 레코드 구분 기호를 저장합니다. 기본값은 개행 문자입니다. print는 인쇄하도록 지정된 내용의 끝에 ORS의 내용을 자동으로 출력합니다.
예:
NR 내장 변수 사용(라인 번호 표시)
$ awk '{print NR,$0}' employee.txt> 산출:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
위의 예에서 NR을 사용하는 awk 명령은 줄 번호와 함께 모든 줄을 인쇄합니다.
NF 내장 변수 사용(마지막 필드 표시)
$ awk '{print $1,$NF}' employee.txt> 산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
위의 예에서 $1은 이름을 나타내고 $NF는 급여를 나타냅니다. $NF를 사용하여 Salary를 얻을 수 있습니다. 여기서 $NF는 마지막 필드를 나타냅니다.
NR 내장 변수의 또 다른 용도(3~6행 표시)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> 산출:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
더 많은 예
지정된 텍스트 파일의 경우:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) geeksforgeeks.txt의 각 줄에서 –로 구분된 행 번호(NR)와 함께 첫 번째 항목을 인쇄하려면:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
질문은 다음과 같아야 합니다. - geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) 비어 있지 않은 줄이 있는 경우 이를 인쇄하려면
$ awk 'NF <0' geeksforgeeks.txt>
여기서 NF는 0 이상이어야 하며 사용자는 줄 번호도 인쇄해야 합니다.
정답 : awk 'NF == 0 {print NR}' geeksforgeeks.txt
또는
awk 'NF <= 0 {인쇄 NR}' geeksforgeeks.txt
0>
4) 파일에 존재하는 가장 긴 줄의 길이를 찾으려면:
$ awk '{ if (length($0)>최대) 최대 = 길이($0) } END { 최대 인쇄 }' geeksforgeeks.txt> 13>
5) 파일의 줄 수를 계산하려면 다음을 수행하십시오.
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) 10자가 넘는 줄을 인쇄하는 경우:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) 특정 열의 문자열을 찾거나 확인하려면 다음을 수행하십시오.
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) 1부터 n까지 첫 번째 숫자의 제곱을 인쇄하려면 6이라고 말하세요.
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
)>최대) 최대 = 길이(Awk는 데이터를 조작하고 보고서를 생성하는 데 사용되는 스크립트 언어입니다. awk 명령 프로그래밍 언어는 컴파일이 필요하지 않으며 사용자가 변수, 숫자 함수, 문자열 함수 및 논리 연산자를 사용할 수 있도록 합니다.
Awk는 프로그래머가 문서의 각 줄에서 검색할 텍스트 패턴과 일치 항목이 발견될 때 수행할 작업을 정의하는 명령문 형식으로 작지만 효과적인 프로그램을 작성할 수 있도록 하는 유틸리티입니다. 선. Awk는 주로 패턴 스캐닝 및 처리에 사용됩니다. 하나 이상의 파일을 검색하여 지정된 패턴과 일치하는 행이 포함되어 있는지 확인한 다음 관련 작업을 수행합니다.
Awk는 개발자 Aho, Weinberger, Kernighan의 이름을 따서 만든 것입니다.
AWK로 무엇을 할 수 있나요?
1. AWK 작업:
(a) 파일을 한 줄씩 검사합니다.
(b) 각 입력 라인을 필드로 분할합니다.
(c) 입력 라인/필드를 패턴과 비교합니다.
(d) 일치하는 라인에서 작업을 수행합니다.
2. 다음에 유용합니다:
(a) 데이터 파일 변환
(b) 형식화된 보고서 생성
3. 프로그래밍 구성:
(a) 출력 라인 포맷
(b) 산술 및 문자열 연산
(c) 조건부 및 루프
통사론:
awk options 'selection _criteria {action }' input-file>출력 파일> 옵션:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
샘플 명령
예:
아래의 모든 경우에 대한 입력 파일로 다음 텍스트 파일을 고려하십시오.
$cat>직원.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
1. Awk의 기본 동작: 기본적으로 Awk는 지정된 파일의 모든 데이터 줄을 인쇄합니다.
$ awk '{print}' employee.txt> 산출:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
위의 예에서는 패턴이 제공되지 않습니다. 따라서 작업은 모든 라인에 적용 가능합니다. 인수 없이 Action print 는 기본적으로 전체 줄을 인쇄하므로 파일의 모든 줄을 실패 없이 인쇄합니다.
2. 주어진 패턴과 일치하는 라인을 인쇄하십시오.
$ awk '/manager/ {print}' employee.txt> 산출:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
위의 예에서 awk 명령은 'manager'와 일치하는 모든 행을 인쇄합니다.
3. 라인을 필드로 분할하기: 각 레코드, 즉 라인에 대해 awk 명령은 기본적으로 공백 문자로 구분된 레코드를 분할하여 $n 변수에 저장합니다. 라인에 4개의 단어가 있으면 각각 $1, $2, $3 및 $4에 저장됩니다. 또한 $0은 전체 줄을 나타냅니다.
$ awk '{print $1,$4}' employee.txt> 산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
위의 예에서 $1과 $4는 각각 이름 및 급여 필드를 나타냅니다.
Awk의 내장 변수
Awk의 내장 변수에는 텍스트 줄을 필드라고 하는 개별 단어나 조각으로 나누는 필드 변수($1, $2, $3 등($0은 전체 줄))가 포함됩니다.
NR: NR 명령은 입력 레코드 수의 현재 카운트를 유지합니다. 레코드는 일반적으로 행이라는 점을 기억하십시오. Awk 명령은 파일의 각 레코드에 대해 패턴/작업 문을 한 번씩 수행합니다. NF: NF 명령은 현재 입력 레코드 내의 필드 수를 유지합니다. FS: FS 명령에는 입력 라인에서 필드를 나누는 데 사용되는 필드 구분 문자가 포함되어 있습니다. 기본값은 공백, 즉 공백과 탭 문자를 의미합니다. FS는 필드 구분 기호를 변경하기 위해 다른 문자(일반적으로 BEGIN)에 다시 할당될 수 있습니다. RS: RS 명령은 현재 레코드 구분 문자를 저장합니다. 기본적으로 입력 행은 입력 레코드이므로 기본 레코드 구분 문자는 개행 문자입니다. OFS: OFS 명령은 Awk가 인쇄할 때 필드를 구분하는 출력 필드 구분 기호를 저장합니다. 기본값은 공백입니다. print에 쉼표로 구분된 여러 매개변수가 있을 때마다 각 매개변수 사이에 OFS 값이 인쇄됩니다. ORS: ORS 명령은 Awk가 인쇄할 때 출력 라인을 구분하는 출력 레코드 구분 기호를 저장합니다. 기본값은 개행 문자입니다. print는 인쇄하도록 지정된 내용의 끝에 ORS의 내용을 자동으로 출력합니다.
예:
NR 내장 변수 사용(라인 번호 표시)
$ awk '{print NR,$0}' employee.txt> 산출:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
위의 예에서 NR을 사용하는 awk 명령은 줄 번호와 함께 모든 줄을 인쇄합니다.
NF 내장 변수 사용(마지막 필드 표시)
$ awk '{print $1,$NF}' employee.txt> 산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
위의 예에서 $1은 이름을 나타내고 $NF는 급여를 나타냅니다. $NF를 사용하여 Salary를 얻을 수 있습니다. 여기서 $NF는 마지막 필드를 나타냅니다.
NR 내장 변수의 또 다른 용도(3~6행 표시)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> 산출:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
더 많은 예
지정된 텍스트 파일의 경우:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) geeksforgeeks.txt의 각 줄에서 –로 구분된 행 번호(NR)와 함께 첫 번째 항목을 인쇄하려면:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
질문은 다음과 같아야 합니다. - geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) 비어 있지 않은 줄이 있는 경우 이를 인쇄하려면
$ awk 'NF <0' geeksforgeeks.txt>
여기서 NF는 0 이상이어야 하며 사용자는 줄 번호도 인쇄해야 합니다.
정답 : awk 'NF == 0 {print NR}' geeksforgeeks.txt
또는
awk 'NF <= 0 {인쇄 NR}' geeksforgeeks.txt
0>
4) 파일에 존재하는 가장 긴 줄의 길이를 찾으려면:
$ awk '{ if (length($0)>최대) 최대 = 길이($0) } END { 최대 인쇄 }' geeksforgeeks.txt> 13>
5) 파일의 줄 수를 계산하려면 다음을 수행하십시오.
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) 10자가 넘는 줄을 인쇄하는 경우:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) 특정 열의 문자열을 찾거나 확인하려면 다음을 수행하십시오.
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) 1부터 n까지 첫 번째 숫자의 제곱을 인쇄하려면 6이라고 말하세요.
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
) } END { 최대 인쇄 }' geeksforgeeks.txt> 13>
5) 파일의 줄 수를 계산하려면 다음을 수행하십시오.
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) 10자가 넘는 줄을 인쇄하는 경우:
$ awk 'length()>10' geeksforgeeks.txt> Awk는 데이터를 조작하고 보고서를 생성하는 데 사용되는 스크립트 언어입니다. awk 명령 프로그래밍 언어는 컴파일이 필요하지 않으며 사용자가 변수, 숫자 함수, 문자열 함수 및 논리 연산자를 사용할 수 있도록 합니다.
Awk는 프로그래머가 문서의 각 줄에서 검색할 텍스트 패턴과 일치 항목이 발견될 때 수행할 작업을 정의하는 명령문 형식으로 작지만 효과적인 프로그램을 작성할 수 있도록 하는 유틸리티입니다. 선. Awk는 주로 패턴 스캐닝 및 처리에 사용됩니다. 하나 이상의 파일을 검색하여 지정된 패턴과 일치하는 행이 포함되어 있는지 확인한 다음 관련 작업을 수행합니다.
Awk는 개발자 Aho, Weinberger, Kernighan의 이름을 따서 만든 것입니다.
AWK로 무엇을 할 수 있나요?
1. AWK 작업:
(a) 파일을 한 줄씩 검사합니다.
(b) 각 입력 라인을 필드로 분할합니다.
(c) 입력 라인/필드를 패턴과 비교합니다.
(d) 일치하는 라인에서 작업을 수행합니다.2. 다음에 유용합니다:
(a) 데이터 파일 변환
(b) 형식화된 보고서 생성3. 프로그래밍 구성:
(a) 출력 라인 포맷
(b) 산술 및 문자열 연산
(c) 조건부 및 루프통사론:
awk options 'selection _criteria {action }' input-file>출력 파일>옵션:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>샘플 명령
예:
아래의 모든 경우에 대한 입력 파일로 다음 텍스트 파일을 고려하십시오.
$cat>직원.txt>ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>1. Awk의 기본 동작: 기본적으로 Awk는 지정된 파일의 모든 데이터 줄을 인쇄합니다.
$ awk '{print}' employee.txt>산출:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>위의 예에서는 패턴이 제공되지 않습니다. 따라서 작업은 모든 라인에 적용 가능합니다. 인수 없이 Action print 는 기본적으로 전체 줄을 인쇄하므로 파일의 모든 줄을 실패 없이 인쇄합니다.
2. 주어진 패턴과 일치하는 라인을 인쇄하십시오.
$ awk '/manager/ {print}' employee.txt>산출:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>위의 예에서 awk 명령은 'manager'와 일치하는 모든 행을 인쇄합니다.
3. 라인을 필드로 분할하기: 각 레코드, 즉 라인에 대해 awk 명령은 기본적으로 공백 문자로 구분된 레코드를 분할하여 $n 변수에 저장합니다. 라인에 4개의 단어가 있으면 각각 $1, $2, $3 및 $4에 저장됩니다. 또한 $0은 전체 줄을 나타냅니다.
$ awk '{print $1,$4}' employee.txt>산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>위의 예에서 $1과 $4는 각각 이름 및 급여 필드를 나타냅니다.
Awk의 내장 변수
Awk의 내장 변수에는 텍스트 줄을 필드라고 하는 개별 단어나 조각으로 나누는 필드 변수($1, $2, $3 등($0은 전체 줄))가 포함됩니다.
NR: NR 명령은 입력 레코드 수의 현재 카운트를 유지합니다. 레코드는 일반적으로 행이라는 점을 기억하십시오. Awk 명령은 파일의 각 레코드에 대해 패턴/작업 문을 한 번씩 수행합니다. NF: NF 명령은 현재 입력 레코드 내의 필드 수를 유지합니다. FS: FS 명령에는 입력 라인에서 필드를 나누는 데 사용되는 필드 구분 문자가 포함되어 있습니다. 기본값은 공백, 즉 공백과 탭 문자를 의미합니다. FS는 필드 구분 기호를 변경하기 위해 다른 문자(일반적으로 BEGIN)에 다시 할당될 수 있습니다. RS: RS 명령은 현재 레코드 구분 문자를 저장합니다. 기본적으로 입력 행은 입력 레코드이므로 기본 레코드 구분 문자는 개행 문자입니다. OFS: OFS 명령은 Awk가 인쇄할 때 필드를 구분하는 출력 필드 구분 기호를 저장합니다. 기본값은 공백입니다. print에 쉼표로 구분된 여러 매개변수가 있을 때마다 각 매개변수 사이에 OFS 값이 인쇄됩니다. ORS: ORS 명령은 Awk가 인쇄할 때 출력 라인을 구분하는 출력 레코드 구분 기호를 저장합니다. 기본값은 개행 문자입니다. print는 인쇄하도록 지정된 내용의 끝에 ORS의 내용을 자동으로 출력합니다.
예:
NR 내장 변수 사용(라인 번호 표시)
$ awk '{print NR,$0}' employee.txt>산출:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>위의 예에서 NR을 사용하는 awk 명령은 줄 번호와 함께 모든 줄을 인쇄합니다.
NF 내장 변수 사용(마지막 필드 표시)
$ awk '{print $1,$NF}' employee.txt>산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>위의 예에서 $1은 이름을 나타내고 $NF는 급여를 나타냅니다. $NF를 사용하여 Salary를 얻을 수 있습니다. 여기서 $NF는 마지막 필드를 나타냅니다.
NR 내장 변수의 또 다른 용도(3~6행 표시)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt>산출:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>더 많은 예
지정된 텍스트 파일의 경우:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>1) geeksforgeeks.txt의 각 줄에서 –로 구분된 행 번호(NR)와 함께 첫 번째 항목을 인쇄하려면:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt>1 - A 2 - Tarun 3 – Manav 4 - Praveen>2) geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
질문은 다음과 같아야 합니다. - geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
$ awk '{print $2}' geeksforgeeks.txt>B A12 B6 M42>3) 비어 있지 않은 줄이 있는 경우 이를 인쇄하려면
$ awk 'NF <0' geeksforgeeks.txt>여기서 NF는 0 이상이어야 하며 사용자는 줄 번호도 인쇄해야 합니다.
정답 : awk 'NF == 0 {print NR}' geeksforgeeks.txt
또는
awk 'NF <= 0 {인쇄 NR}' geeksforgeeks.txt
0>4) 파일에 존재하는 가장 긴 줄의 길이를 찾으려면:
$ awk '{ if (length($0)>최대) 최대 = 길이($0) } END { 최대 인쇄 }' geeksforgeeks.txt>13>5) 파일의 줄 수를 계산하려면 다음을 수행하십시오.
$ awk 'END { print NR }' geeksforgeeks.txt>3>6) 10자가 넘는 줄을 인쇄하는 경우:
$ awk 'length($0)>10' geeksforgeeks.txt>Tarun A12 1 Praveen M42 3>7) 특정 열의 문자열을 찾거나 확인하려면 다음을 수행하십시오.
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt>8) 1부터 n까지 첫 번째 숫자의 제곱을 인쇄하려면 6이라고 말하세요.
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'>square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
Tarun A12 1 Praveen M42 3>
7) 특정 열의 문자열을 찾거나 확인하려면 다음을 수행하십시오.
$ awk '{ if( == 'B6') print Awk는 데이터를 조작하고 보고서를 생성하는 데 사용되는 스크립트 언어입니다. awk 명령 프로그래밍 언어는 컴파일이 필요하지 않으며 사용자가 변수, 숫자 함수, 문자열 함수 및 논리 연산자를 사용할 수 있도록 합니다.
Awk는 프로그래머가 문서의 각 줄에서 검색할 텍스트 패턴과 일치 항목이 발견될 때 수행할 작업을 정의하는 명령문 형식으로 작지만 효과적인 프로그램을 작성할 수 있도록 하는 유틸리티입니다. 선. Awk는 주로 패턴 스캐닝 및 처리에 사용됩니다. 하나 이상의 파일을 검색하여 지정된 패턴과 일치하는 행이 포함되어 있는지 확인한 다음 관련 작업을 수행합니다.
Awk는 개발자 Aho, Weinberger, Kernighan의 이름을 따서 만든 것입니다.
AWK로 무엇을 할 수 있나요?
1. AWK 작업:
(a) 파일을 한 줄씩 검사합니다.
(b) 각 입력 라인을 필드로 분할합니다.
(c) 입력 라인/필드를 패턴과 비교합니다.
(d) 일치하는 라인에서 작업을 수행합니다.
2. 다음에 유용합니다:
(a) 데이터 파일 변환
(b) 형식화된 보고서 생성
3. 프로그래밍 구성:
(a) 출력 라인 포맷
(b) 산술 및 문자열 연산
(c) 조건부 및 루프
통사론:
awk options 'selection _criteria {action }' input-file>출력 파일> 옵션:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
샘플 명령
예:
아래의 모든 경우에 대한 입력 파일로 다음 텍스트 파일을 고려하십시오.
$cat>직원.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
1. Awk의 기본 동작: 기본적으로 Awk는 지정된 파일의 모든 데이터 줄을 인쇄합니다.
$ awk '{print}' employee.txt> 산출:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
위의 예에서는 패턴이 제공되지 않습니다. 따라서 작업은 모든 라인에 적용 가능합니다. 인수 없이 Action print 는 기본적으로 전체 줄을 인쇄하므로 파일의 모든 줄을 실패 없이 인쇄합니다.
2. 주어진 패턴과 일치하는 라인을 인쇄하십시오.
$ awk '/manager/ {print}' employee.txt> 산출:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
위의 예에서 awk 명령은 'manager'와 일치하는 모든 행을 인쇄합니다.
3. 라인을 필드로 분할하기: 각 레코드, 즉 라인에 대해 awk 명령은 기본적으로 공백 문자로 구분된 레코드를 분할하여 $n 변수에 저장합니다. 라인에 4개의 단어가 있으면 각각 $1, $2, $3 및 $4에 저장됩니다. 또한 $0은 전체 줄을 나타냅니다.
$ awk '{print $1,$4}' employee.txt> 산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
위의 예에서 $1과 $4는 각각 이름 및 급여 필드를 나타냅니다.
Awk의 내장 변수
Awk의 내장 변수에는 텍스트 줄을 필드라고 하는 개별 단어나 조각으로 나누는 필드 변수($1, $2, $3 등($0은 전체 줄))가 포함됩니다.
NR: NR 명령은 입력 레코드 수의 현재 카운트를 유지합니다. 레코드는 일반적으로 행이라는 점을 기억하십시오. Awk 명령은 파일의 각 레코드에 대해 패턴/작업 문을 한 번씩 수행합니다. NF: NF 명령은 현재 입력 레코드 내의 필드 수를 유지합니다. FS: FS 명령에는 입력 라인에서 필드를 나누는 데 사용되는 필드 구분 문자가 포함되어 있습니다. 기본값은 공백, 즉 공백과 탭 문자를 의미합니다. FS는 필드 구분 기호를 변경하기 위해 다른 문자(일반적으로 BEGIN)에 다시 할당될 수 있습니다. RS: RS 명령은 현재 레코드 구분 문자를 저장합니다. 기본적으로 입력 행은 입력 레코드이므로 기본 레코드 구분 문자는 개행 문자입니다. OFS: OFS 명령은 Awk가 인쇄할 때 필드를 구분하는 출력 필드 구분 기호를 저장합니다. 기본값은 공백입니다. print에 쉼표로 구분된 여러 매개변수가 있을 때마다 각 매개변수 사이에 OFS 값이 인쇄됩니다. ORS: ORS 명령은 Awk가 인쇄할 때 출력 라인을 구분하는 출력 레코드 구분 기호를 저장합니다. 기본값은 개행 문자입니다. print는 인쇄하도록 지정된 내용의 끝에 ORS의 내용을 자동으로 출력합니다.
예:
NR 내장 변수 사용(라인 번호 표시)
$ awk '{print NR,$0}' employee.txt> 산출:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
위의 예에서 NR을 사용하는 awk 명령은 줄 번호와 함께 모든 줄을 인쇄합니다.
NF 내장 변수 사용(마지막 필드 표시)
$ awk '{print $1,$NF}' employee.txt> 산출:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
위의 예에서 $1은 이름을 나타내고 $NF는 급여를 나타냅니다. $NF를 사용하여 Salary를 얻을 수 있습니다. 여기서 $NF는 마지막 필드를 나타냅니다.
NR 내장 변수의 또 다른 용도(3~6행 표시)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> 산출:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
더 많은 예
지정된 텍스트 파일의 경우:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) geeksforgeeks.txt의 각 줄에서 –로 구분된 행 번호(NR)와 함께 첫 번째 항목을 인쇄하려면:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
질문은 다음과 같아야 합니다. - geeksforgeeks.txt에서 두 번째 열/항목을 반환하려면:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) 비어 있지 않은 줄이 있는 경우 이를 인쇄하려면
$ awk 'NF <0' geeksforgeeks.txt>
여기서 NF는 0 이상이어야 하며 사용자는 줄 번호도 인쇄해야 합니다.
정답 : awk 'NF == 0 {print NR}' geeksforgeeks.txt
또는
awk 'NF <= 0 {인쇄 NR}' geeksforgeeks.txt
0>
4) 파일에 존재하는 가장 긴 줄의 길이를 찾으려면:
$ awk '{ if (length($0)>최대) 최대 = 길이($0) } END { 최대 인쇄 }' geeksforgeeks.txt> 13>
5) 파일의 줄 수를 계산하려면 다음을 수행하십시오.
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) 10자가 넘는 줄을 인쇄하는 경우:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) 특정 열의 문자열을 찾거나 확인하려면 다음을 수행하십시오.
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) 1부터 n까지 첫 번째 숫자의 제곱을 인쇄하려면 6이라고 말하세요.
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
;}' geeksforgeeks.txt> 8) 1부터 n까지 첫 번째 숫자의 제곱을 인쇄하려면 6이라고 말하세요.
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>