<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=Awk</id>
	<title>Awk - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=Awk"/>
	<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=Awk&amp;action=history"/>
	<updated>2026-05-19T15:24:25Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://devcafe.co.kr/w/index.php?title=Awk&amp;diff=1497&amp;oldid=prev</id>
		<title>Devcafe: 새 문서: == awk 명령어 == &lt;source lang=bash&gt; awk [OPTION...] [awk program] [ARGUMENT...]       [OPTION]         -F        : 필드 구분 문자 지정.         -f        : awk program 파일 경로 지정.         -v        : awk program에서 사용될 특정 variable값 지정.        [awk program]         -f 옵션이 사용되지 않은 경우, awk가 실행할 awk program 코드 지정.        [ARGUMENT]         입력 파일 지정 또는 variable 값 지정. &lt;/source&gt; === 특...</title>
		<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=Awk&amp;diff=1497&amp;oldid=prev"/>
		<updated>2025-05-27T23:38:53Z</updated>

		<summary type="html">&lt;p&gt;새 문서: == awk 명령어 == &amp;lt;source lang=bash&amp;gt; awk [OPTION...] [awk program] [ARGUMENT...]       [OPTION]         -F        : 필드 구분 문자 지정.         -f        : awk program 파일 경로 지정.         -v        : awk program에서 사용될 특정 variable값 지정.        [awk program]         -f 옵션이 사용되지 않은 경우, awk가 실행할 awk program 코드 지정.        [ARGUMENT]         입력 파일 지정 또는 variable 값 지정. &amp;lt;/source&amp;gt; === 특...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== awk 명령어 ==&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk [OPTION...] [awk program] [ARGUMENT...]&lt;br /&gt;
      [OPTION]&lt;br /&gt;
        -F        : 필드 구분 문자 지정.&lt;br /&gt;
        -f        : awk program 파일 경로 지정.&lt;br /&gt;
        -v        : awk program에서 사용될 특정 variable값 지정.&lt;br /&gt;
&lt;br /&gt;
      [awk program]&lt;br /&gt;
        -f 옵션이 사용되지 않은 경우, awk가 실행할 awk program 코드 지정.&lt;br /&gt;
&lt;br /&gt;
      [ARGUMENT]&lt;br /&gt;
        입력 파일 지정 또는 variable 값 지정.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== 특정 pattern이 포함된 레코드 출력  ===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;/패턴../&amp;#039; ./awk_test_file.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 패턴 &amp;quot;BEGIN&amp;quot; 과 &amp;quot;END&amp;quot; ===&lt;br /&gt;
# awk가 BEGIN 패턴을 식별하면 입력 데이터로부터 첫 번째 레코드를 처리하기 전에  &amp;quot;BEGIN&amp;quot;에 지정된 액션 실행&lt;br /&gt;
# &amp;quot;END&amp;quot; 패턴은 &amp;quot;BEGIN&amp;quot;과 반대로, 모든 레코드를 처리한 다음 &amp;quot;END&amp;quot;에 지정된 액션을 실행&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;BEGIN&amp;quot;과 &amp;quot;END&amp;quot; 패턴 사용 예제&lt;br /&gt;
ex 1)&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ awk &amp;#039;BEGIN { print &amp;quot;TITLE : Field value 1,2&amp;quot;} &lt;br /&gt;
             {print $1, $2} &lt;br /&gt;
         END {print &amp;quot;Finished&amp;quot;}&amp;#039; &lt;br /&gt;
       ./file.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
ex 2)&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
 awk &amp;#039;&lt;br /&gt;
 BEGIN {&lt;br /&gt;
  sum = 0&lt;br /&gt;
  cnt = -1&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
  sum += $5&lt;br /&gt;
  cnt++&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 END {&lt;br /&gt;
  avg = sum/cnt&lt;br /&gt;
  print (&amp;quot;sum :&amp;quot; sum &amp;quot;, average :&amp;quot; avg)&lt;br /&gt;
 }&amp;#039; ./file.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== if 구문 으로 특정 레코드 검색  ===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;{ if ( $5 &amp;gt;= 80 ) print ($0) }&amp;#039; ./file.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* if 구문에서 비교하려면 쌍따옴표(&amp;quot;) 사용 &lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;{ if ( $4 == &amp;quot;M&amp;quot; ) print ($0) }&amp;#039; ./file.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== for 반복문 ===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;{&lt;br /&gt;
for(i=0;i&amp;lt;2;i++)&lt;br /&gt;
 print( &amp;quot;for loop :&amp;quot; i &amp;quot;\t&amp;quot; $1, $2, $3)&lt;br /&gt;
}&amp;#039; ./file.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 내장함수 ===&lt;br /&gt;
* length() : 길이&lt;br /&gt;
* substr() : 부분단어 추출&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
 awk &amp;#039;{ print (&amp;quot;name leng : &amp;quot; length($1), &amp;quot;substr(0,3) : &amp;quot; substr($1,0,3)) }&amp;#039; ./file.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 예제 실습  ===&lt;br /&gt;
* file : file.txt&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
name    phone           birth           sex     score&lt;br /&gt;
sim     010-4321-4321   1999-09-09      F       88&lt;br /&gt;
nara    010-1010-2020   1993-12-12      M       20&lt;br /&gt;
yut     010-2323-2323   1988-10-10      F       59&lt;br /&gt;
kim     010-1234-4321   1977-07-17      M       69&lt;br /&gt;
nam     010-4321-7890   1996-06-20      M       75&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== file.txt의 모든 레코드 출력 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;{ print }&amp;#039; ./file.txt      &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== file.txt에서 p를 포함하는 레코드 출력 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;/p/&amp;#039; ./file.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 레코드 길이 10 이상인 경우, 세 번째($3), 네 번째($4), 다섯 번째($5) 필드 출력 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;length($0) &amp;gt; 10 { print $3, $4, $5} &amp;#039; ./file.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 필드 값 출력 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;{ print $1 }&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 필드 값에 임의 문자열을 같이 출력 ==== 	&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;{print &amp;quot;STR&amp;quot;$1, &amp;quot;STR&amp;quot;$2}&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== 지정된 문자열을 포함하는 레코드만 출력	 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;/STR/&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== 특정 필드 값 비교를 통해 선택된 레코드만 출력 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;$1 == 10 { print $2 }&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== 특정 필드들의 합 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;{sum += $3} END { print sum }&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== 여러 필드들의 합 구하기  ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;{ for (i=2; i&amp;lt;=NF; i++) total += $i }; END { print &amp;quot;TOTAL : &amp;quot;total }&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== 레코드 단위로 필드 합 및 평균 값  ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;{ sum = 0 } {sum += ($3+$4+$5) } { print $0, sum, sum/3 }&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== 필드에 연산을 수행한 결과 출력  ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;{print $1, $2, $3+2, $4, $5}&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== 레코드 또는 필드의 문자열 길이 검사 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039; length($0) &amp;gt; 20&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== 파일에 저장된 awk program 실행 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk -f [AWK FILE] [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== 필드 구분 문자 변경하기  ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk -F &amp;#039;:&amp;#039; &amp;#039;{ print $1 }&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== awk 실행 결과 레코드 정렬하기 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;{ print $0 }&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== 특정 레코드만 출력하기 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;NR == 2 { print $0; exit }&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== 출력 필드 너비 지정하기  ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;{ printf &amp;quot;%-3s %-8s %-4s %-4s %-4s\n&amp;quot;, $1, $2, $3, $4, $5}&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== 필드 중 최대 값 출력	====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
awk &amp;#039;{max = 0; for (i=3; i&amp;lt;NF; i++) max = ($i &amp;gt; max) ? $i : max ; print max}&amp;#039; [FILE]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:unix]]&lt;br /&gt;
[[category:awk]]&lt;/div&gt;</summary>
		<author><name>Devcafe</name></author>
	</entry>
</feed>