본문 바로가기
IT/linux

linux awk 예제

by 어느해겨울 2023. 3. 21.

awk 예제

 

1. 파일에서 특정 문자열 검색

$ awk '/search_string/ {print}' filename.txt

: filename.txt 파일에서 "search_string"이라는 문자열을 검색하고, 해당 문자열이 포함된 모든 행을 출력

 

2. 파일에서 특정 열 추출

$ awk '{print $2}' filename.txt

: filename.txt 파일에서 두 번째 열을 출력

 

3. 파일에서 특정 조건에 맞는 행 추출

$ awk '$3 > 50 {print}' filename.txt

: filename.txt 파일에서 세 번째 열의 값이 50보다 큰 모든 행을 출력

 

4. 파일에서 특정 패턴 치환

$ awk '{gsub(/old_string/, "new_string"); print}' filename.txt

: filename.txt 파일에서 "old_string"이라는 문자열을 "new_string"으로 변경한 후, 모든 행을 출력

 

5. 파일에서 각 열의 합 구하기

$ awk '{sum += $3} END {print sum}' filename.txt

: filename.txt 파일에서 세 번째 열의 값을 모두 더한 후, 결과를 출력

 

6. 파일에서 특정 구분자로 나누기

$ awk -F"," '{print $1, $2}' filename.txt

: filename.txt 파일에서 쉼표로 구분된 첫 번째 열과 두 번째 열을 출력

 

7. 파일에서 중복 제거하기

$ awk '!a[$0]++' filename.txt

: filename.txt 파일에서 중복된 행을 제거한 후, 결과를 출력

 

8. 파일에서 특정 문자열을 가진 행 삭제하기

$ awk '!/search_string/' filename.txt

: filename.txt 파일에서 "search_string"이라는 문자열을 포함하는 모든 행을 삭제한 후, 결과를 출력

 

9. 파일에서 특정 패턴을 가진 행 추출하기

$ awk '/search_pattern/ {print}' filename.txt

: filename.txt 파일에서 "search_pattern"이라는 패턴을 포함하는 모든 행을 출력

 

10. 파일에서 특정 범위의 행 추출하기

$ awk 'NR>=start && NR<=end {print}' filename.txt

: filename.txt 파일에서 start 행부터 end 행까지의 모든 행을 출력

 

11. 파일에서 열의 평균 구하기

$ awk '{sum += $2} END {print sum/NR}' filename.txt

: filename.txt 파일에서 두 번째 열의 값을 모두 더한 후, 평균 값을 출력

 

12. 파일에서 특정 문자열이 포함된 열 추출하기

$ awk '{for(i=1;i<=NF;i++) {if ($i ~ /search_string/) print $i}}' filename.txt

: filename.txt 파일에서 "search_string"이라는 문자열을 포함한 모든 열을 출력

 

13. 파일에서 특정 패턴으로 시작하는 행 추출하기

$ awk '/^search_pattern/ {print}' filename.txt

: filename.txt 파일에서 "search_pattern"이라는 패턴으로 시작하는 모든 행을 출력

 

14. 파일에서 특정 열을 기준으로 정렬하기

$ awk '{print $2, $1}' filename.txt | sort

: filename.txt 파일에서 두 번째 열을 첫 번째 열 앞에 놓고, 정렬한 후 결과를 출력

 

15. 파일에서 특정 열의 최댓값 구하기

$ awk 'NR==1 {max=$2} $2>max {max=$2} END {print max}' filename.txt

: filename.txt 파일에서 두 번째 열의 최댓값을 출력

 

16. 파일에서 특정 열을 기준으로 그룹핑하여 합 구하기

$ awk '{sum[$1] += $2} END {for (i in sum) print i, sum[i]}' filename.txt

: filename.txt 파일에서 첫 번째 열을 기준으로 그룹핑하여 두 번째 열의 값을 합한 결과를 출력

 

17. 파일에서 특정 패턴을 가진 행의 열값 추출하기

$ awk '/search_pattern/ {for(i=1;i<=NF;i++) {if ($i ~ /pattern/) print $i}}' filename.txt

: filename.txt 파일에서 "search_pattern"이라는 패턴을 포함하는 모든 행에서 "pattern"이라는 패턴을 포함한 열을 출력

 

18. 파일에서 중복을 제외한 특정 열 추출하기

$ awk '!seen[$1]++ {print $1}' filename.txt

: filename.txt 파일에서 중복을 제외한 첫 번째 열의 값을 출력

 

19. 파일에서 특정 열 값을 기준으로 정렬하기

$ awk '{print $2, $1}' filename.txt | sort -n

: filename.txt 파일에서 두 번째 열을 첫 번째 열 앞에 놓고, 숫자 순으로 정렬한 후 결과를 출력

 

20. 파일에서 특정 열의 값이 특정 범위에 있는 행 추출하기

$ awk '$2 > 50 && $2 < 100 {print}' filename.txt

: filename.txt 파일에서 두 번째 열의 값이 50보다 크고 100보다 작은 모든 행을 출력

 

댓글