Infra/리눅스

awk 실습

서머스 2020. 12. 2. 18:23

각 줄마다 첫번째, 마지막 필드 출력하기

 

그러면 awk프로그램에서 수정할 수 있다

 

BEGIN : 시작할 때

print "start" 출력하고 , 1번째 요소를 출력한다

그리고 본문는 첫번째 필드랑 마지막 필드를 출력하낟

그리고 끝날 때 "end 출력"

 

vim에서는 명령 모드와 입력 모드가 따로 있고, 처음 들어갈 때는 명령 모드로 되어있다

글을 쓸려면 a를 눌러야 한다.

입력이 끝나고 나올려면 esc를 누르고 :wq 를 눌러 빠져나온다

 

이렇게 나온다

궁금해서 해봤는데 argv[0] -> awk 가 출력된다.

 

 

2. 각 줄마다 단어 수 세고, 마지막에 총 줄 수 , 단어 수 출력

 

 

3. 각 줄마다 홀수 번째 필드 출력

 

4. st로 시작해서 s로 끝나는 줄 있으면 출력

breakfeast at Tiffany's -> 이게 걸린 것 같다

 

5. want 가 포함된 줄의 수 출력

처음엔 for문 쓰고 그랬다는.. 주륵

 

6. 각 단어별 출현 빈도수

 

FS= " " 필드 나누는 단위

[^ ] => [^와 ] 사이의 것을 제외한다는 의미

즉, 영문 대문자, 소문자를 제외하고는 공백 숫자 등 전부를 FS로 두겠다는 의미

 

words는 associative array( 단어를 인덱스로 사용하는 배열) 이다

일단 줄마다 나오는 필드들을 다 tolower로 소문자화 시켜서, 그걸 a.a에 넣는다

 

그다음엔 단어와 그 개수를 각각 출력!

이 외에도 매우 길게 나온다