| [[프로그래밍 언어|'''프로그래밍 언어 {{{#!wiki style="font-family: Times New Roman, serif; display: inline;"]] | ||
| {{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px" {{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)" {{{#!folding [ 목록 ] {{{#!wiki style="margin: -5px -1px" | <colbgcolor=royalblue><colcolor=#fff> ※ 나무위키에 등재된 프로그래밍 언어 목록 | |
| A | ActionScript · AdaT · AgdaTP · ALGOLT · ApexT · APL · awk · AssemblyT | |||||||
| B | BASIC | |||||||
| C | ||||||||
| D | ||||||||
| E | Elixir · | |||||||
| F | ||||||||
| G | GNU Octave · | |||||||
| H | ||||||||
| I | ||||||||
| J | ||||||||
| K | ||||||||
| L | LeanTP · | |||||||
| M | MATLAB · MaxV · MojoT · Moonlight | |||||||
| N | ||||||||
| O | OberonT · Objective-CT · | |||||||
| P | PascalT · Perl · | |||||||
| Q | Q#T · QML | |||||||
| R | ||||||||
| S | SAS · | |||||||
| T | ||||||||
| U | Udon | |||||||
| V | Visual Basic · Visual Basic .NET · Visual Basic for Applications · vvvvV | |||||||
| W | Wave | |||||||
| X | XSharp | |||||||
| Y | ||||||||
| Z | ZenScript · | |||||||
| 한글 | 누리 · 숨V · 씨앗 · 약속 · | |||||||
| T: 정적 타입 프로그래밍 언어 · P: 증명 보조 언어 · S: LISP 방언 및 S-표현식 기반 언어 · V: 시각적 프로그래밍 언어 | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)" {{{#!folding [ 순위 ] {{{#!wiki style="margin: -5px -1px -10px" | {{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px" {{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ IEEE Spectrum 2025 ] {{{#!wiki style="margin: -5px -1px" | <tablewidth=100%><tablebgcolor=transparent><colbgcolor=#11a500><colcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 | <colbgcolor=#ff1100><colcolor=#fff> 직업 부문 상위 10개 프로그래밍 언어 | ||||
| 1 | Python | 1 | Python | |||||
| 2 | Java | 2 | SQL | |||||
| 3 | C++ | 3 | Java | |||||
| 4 | SQL | 4 | JavaScript | |||||
| 5 | C# | 5 | TypeScript | |||||
| 6 | JavaScript | 6 | C# | |||||
| 7 | TypeScript | 7 | C++ | |||||
| 8 | C | 8 | HTML | |||||
| 9 | Shell | 9 | Go | |||||
| 10 | Go | 10 | Shell | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ Stack Overflow 2025 ] {{{#!wiki style="margin: -5px -1px" | <colbgcolor=#ffa500><colcolor=#fff> 2025년 Stackoverflow 설문조사 상위 25개 프로그래밍 언어 | |||
| 1 | JavaScript | <colbgcolor=#ffa500><colcolor=#fff> 14 | Rust | |||||
| 2 | HTML & CSS | 15 | Kotlin | |||||
| 3 | SQL | 16 | Lua | |||||
| 4 | Python | 17 | 어셈블리어 | |||||
| 5 | Bash/Shell | 18 | Ruby | |||||
| 6 | TypeScript | 19 | Dart | |||||
| 7 | Java | 20 | Swift | |||||
| 8 | C# | 21 | R | |||||
| 9 | C++ | 22 | Groovy | |||||
| 10 | PowerShell | 23 | Visual Basic | |||||
| 11 | C | 24 | VBA | |||||
| 12 | PHP | 25 | MATLAB | |||||
| 13 | Go | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ TIOBE 2025 ] {{{#!wiki style="margin: -5px -1px" | <colbgcolor=#2777c2><colcolor=#fff> 2025년 10월 TIOBE 검색어 점유율 상위 20개 프로그래밍 언어 | |||||
| 1 | Python | <colbgcolor=#2777c2><colcolor=#fff> 11 | Fortran | |||||
| 2 | C | 12 | Perl | |||||
| 3 | C++ | 13 | R | |||||
| 4 | Java | 14 | PHP | |||||
| 5 | C# | 15 | Assembly language | |||||
| 6 | JavaScript | 16 | Rust | |||||
| 7 | Visual Basic | 17 | MATLAB | |||||
| 8 | Go | 18 | Scratch | |||||
| 9 | Delphi / Object Pascal | 19 | Ada | |||||
| 10 | SQL | 20 | Kotlin | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ PYPL 2025 ] {{{#!wiki style="margin: -5px -1px -10px" | <colbgcolor=green><colcolor=#fff> 2025년 11월 PYPL 검색어 점유율 상위 20개 프로그래밍 언어 | |||
| 1 | Python | <colbgcolor=green><colcolor=#fff> 11 | Ada | |||||
| 2 | Java | 12 | TypeScript | |||||
| 3 | C++ | 13 | MATLAB | |||||
| 4 | Objective-C | 14 | Kotlin | |||||
| 5 | R | 15 | PowerShell | |||||
| 6 | JavaScript | 16 | Go | |||||
| 7 | C# | 17 | Dart | |||||
| 8 | Swift | 18 | Ruby | |||||
| 9 | PHP | 19 | Lua | |||||
| 10 | Rust | 20 | VBA | }}}}}}}}}}}} | }}}}}}}}}}}} | |||
| 실행 방식 · 분류 · 언어 목록(분류:프로그래밍 언어 문법) · 언어별 예제 · 틀:프로그래밍 언어 문법 · 틀:난해한 프로그래밍 언어 | ||||||||
1. 개요
Aho, Weinberger, Kernighan / AWK[1]스트림 기반 텍스트 처리를 위한 스크립트 언어.
발음은 /ɔːk/로, 외래어 표기법을 따라 표기하면 '오크'다. 외래어 표기법을 따르지 않아도 '오크'라고 읽고 쓰는 경우가 많다.
2. 용도
주로 정규표현식을 사용한 라인 단위의 처리를 하는 데에 매우 효과적이다. 예를 들어 각 행의 모든 숫자를 더해 총합을 계산하는 등의 작업에 효과적이지만, 전체 행을 처음부터 끝까지 읽은 후 정렬하는 등의 작업(불가능한 것은 아니다)을 하기에는 상대적으로 불리하며, 무엇보다 sort명령어가 있다.또한 전체 데이터가 한 줄로 되어있는 형태의 데이터를 다루기에도 상대적으로 불리하다.
3. 특징
PCRE를 지원하며, C언어와 문법이 비슷하다.4. 문법
기본적으로#!syntax javascript
패턴 {
액션
}
의 정의가 반복되는 형태를 취한다.액션은 일련의 구문(statement)로 이루어지며, 각 구문은 일반적인 프로그래밍 언어의 행과 비슷하다.
단, awk에서는 행 끝에
;을 붙혀도 되고, 붙히지 않아도 된다.4.1. 패턴
패턴은 기본적으로 참 또는 거짓을 가릴 수 있는 표현식이다.즉,
1 등의 상수도 패턴이 될 수 있으며, 항상 참이거나 항상 거짓으로 판정된다.보통의 경우 패턴에 정규표현식을 사용한다.
/https?:\/\/\w+\.\w/ {
print $0
}
위의 코드는 URL이 포함된 모든 행을 출력한다.4.1.1. 특수 패턴
awk는 대표적으로 다음의 두 가지 특수 패턴을 가지고 있다.- BEGIN: 파일의 시작 부분에 매칭된다. 따라서 BEGIN 패턴 안의 액션은 항상 시작시마다 반드시 실행된다. 주로 초기화 구문, 구분자 변수 설정 등의 코드가 위치한다. C언어의 main함수와 같은 역할을 한다고 볼 수 있지만, C와는 다르게 유일한 진입점은 아니다.
- END: 파일의 끝(EOF)에 매칭된다. 따라서 이 안의 코드 또한 파일을 모두 읽어들인 시점에 반드시 실행된다. 주로 결과 계산, 결과 출력 등의 코드가 위치한다.
4.2. 변수 선언
#!syntax javascript
variable = 123과 같이 <변수명> = <대입할 값> 형태로 사용한다.타입은 문자열, 숫자 등이 존재하며 타입 명시는 필요하지 않다.
4.3. 제어문
awk는 문법적으로 C언어의 후손이다. 따라서 많은 내용을 C언어/문법과 공유한다.4.3.1. 조건문
#!syntax javascript
if (<condition>) <statement>;또는
#!syntax javascript
if (<condition>) {
<statement>;
<statement>;
}
위와 같이 사용한다.
4.3.2. 삼항 연산자
#!syntax javascript
res = cond ? val1 : val2 의 형식으로 사용한다.4.4. 배열
awk에서의 배열은 JavaScript와 같이 실제로는 해시(맵) 형태이다. 따라서 키로는 숫자와 문자열 모두 가질 수 있다.#!syntax javascript
arr[0] = "item1"
arr[1] = "item2"
arr["string"] = "string key"5. 기타
- Baekjoon OJ에서 이 언어를 지원한다.
awk로 숏코하는 빌런들이 많다 카더라
6. 관련 문서
[1] 개발자들의 이름이다.