Development/Linux

간단히 awk를 사용하여 Pattern Detecting !!

꽃현주 2014. 2. 2. 19:06

간단히 리눅스에서 데이터 다루기!! 


 이름    학과        번호    국어    영어    수학    평균 

홍길동   컴공         1        100      90       95       95 

홍진이   경영         2         100     100     100   100

철수      컴공         2         90       90       90      90

홍민수   산디         1        100       60       80      80           

구분자: tab     File: test.txt


* 성이 '홍' 씨이고 평균이 85점 이상인 학생의 이름과 번호과 평균을 출력하고, 평균으로 정렬하여라.

 (단, 평균은 내림차순이고 출력 구분자는 tab 이다.)

$ cat text.txt | grep '^홍' | awk -F'\t' '{if($7>=85) print $1"\t"$3"\t"$7}' | sort -r -k 3

간단히 위의 명령어로 데이터를 정렬하고 뽑고, 원하는 형태로 데이터를 정제 할 수 있다.


결과

홍진이          2        100
홍길동          1         95

File: result.txt



유용한사이트(ggang9님이 공유해주신ㅎㅎ): http://explainshell.com /explain?cmd=cat+text.txt+%7C+grep+%27%5E홍%27+%7C+awk+-F+%27%5Ct%27+%27 %7Bif%28%247%3E%3D85%29+print+%241%22%5Ct%22%243%22%5Ct%22%247%7D%27+%7C+plan9-sort.1+-r+-k+3