---
title: "#AWK 프로그래밍 - 이맥스"
url: "https://notes.junghanacs.com/notes/20241210T130047"
author: "Junghan Kim"
date: "2024-12-10T13:00:00+09:00"
lastmod: "2024-12-10T13:00:00+09:00"
tags: ["emacs","awk","programming"]
description: "AWK를 이맥스 안에서 텍스트 처리 도구이자 프로그래밍 언어로 다시 보는 노트이다."
---

> [!abstract] 이 노트에 대하여
> 
> AWK의 장점과 관련 자료를 Emacs 맥락에서 묶어 살펴보는 노트다. 간결한 텍스트 처리 언어가 이맥스 기반 작업 흐름에서 어떤 자리를 가질 수 있는지 가늠하게 한다.

## 키워드: awk

-   [bib/ #이맥스 #간격반복학습 §orgdrill §orgfc '2024-10-09 #2025-06-28](https://notes.junghanacs.com/bib/20241009T105749)
-   [bib/ @앨프리드에이호 @브라이언커니핸: #AWK프로그래밍 #텍스트처리 - 간결 강력 '2024-12-10 #2025-06-03](https://notes.junghanacs.com/bib/20241210T131147)
-   [notes/ #이맥스 #통합개발환경: #AWK #스크립트 #Janet '2024-10-09](https://notes.junghanacs.com/notes/20241009T105542)
-   [notes/ #어색한 #용어 #단어 '2025-05-23 #2025-05-23](https://notes.junghanacs.com/notes/20250523T155435)
-   [notes/ #시스템 #플랫폼 #생태계 관계 확장 개념 '2025-06-30 #2025-06-30](https://notes.junghanacs.com/notes/20250630T121754)

## [contacts::Graham Marlow - mgmarlow - mgmarlow.com](https://notes.junghanacs.com/meta/20230303T030300#h-27c3113d-578c-4f3a-b271-6347f020fcec) 예제

### DM Tools with Awk :

(Graham Marlow n.d.-a)

### mgmarlow/awkdown : A markdown renderer written in #awk :2024

(“Mgmarlow/Awkdown : a Markdown Renderer Written in #Awk” 2024)

-   Graham Marlow
-   A markdown renderer written in Awk

### Markdown Rendering with Awk :

(Graham Marlow n.d.-b)

-   Graham Marlow

## 로그

### 2024-12-10

#### @user  AWK 언어가 텍스트 처리에 어떤 장점이 있는가? 그리고 이맥스에서 효과적으로 활용하는 방법은?

@assistant **\*AWK 언어의 장점:**

1.  **간결함**: AWK는 매우 간결한 문법을 가지고 있어, 복잡한 텍스트 처리 작업을 짧은 코드로 구현할 수 있습니다.
2.  **내장된 기능**: AWK는 기본적으로 패턴 매칭, 필드 분리, 수치 연산 등을 지원하여 텍스트 데이터를 쉽게 분석하고 변환할 수 있습니다.
3.  **정규 표현식 지원**: 정규 표현식을 사용하여 텍스트 패턴을 쉽게 찾고 조작할 수 있습니다.
4.  **가독성**: AWK 스크립트는 읽기 쉬워서 유지보수가 용이합니다.
5.  **효율성**: 대용량 데이터 처리에도 효율적입니다.
6.  **유닉스/리눅스와의 호환성**: 유닉스 계열 시스템에서 널리 사용되며, 쉘 스크립트와 잘 통합됩니다.

**이맥스에서 AWK를 효과적으로 활용하는 방법:**

1.  **M-x shell**: 이맥스 내에서 쉘을 실행하여 AWK 명령을 직접 입력할 수 있습니다.
    ```emacs-lisp
    M-x shell
    awk '프로그램' 파일명
    ```

2.  **M-x compile**: AWK 스크립트를 컴파일하고 실행할 수 있습니다.
    ```emacs-lisp
    M-x compile
    awk -f 스크립트파일.awk 입력파일
    ```

3.  **Emacs Lisp와 통합**: Emacs Lisp를 사용하여 AWK 스크립트를 실행하고 결과를 처리할 수 있습니다.
    ```emacs-lisp
    (shell-command-to-string "awk '프로그램' 파일명")
    ```

4.  **AWK 모드**: AWK 스크립트를 편집할 때, `awk-mode` 를 사용하여 AWK 문법에 맞는 하이라이팅과 자동 완성 기능을 활용할 수 있습니다.
    ```emacs-lisp
    (use-package awk-mode
      :ensure t)
    ```

5.  **org-babel**: Org-mode에서 AWK 블록을 사용하여 AWK 코드를 문서화하고 실행할 수 있습니다.
    ```org
    #+BEGIN_SRC awk
    {print 1, 달러 2 달러}
    ```
    \#+end_src

6.  **Custom Keybindings**: AWK 관련 작업을 자주 한다면, 커스텀 키바인딩을 설정하여 빠르게 AWK 스크립트를 실행할 수 있습니다.
    ```emacs-lisp
    (global-set-key (kbd "C-c a") 'awk-mode)
    ```

이맥스에서 AWK를 효과적으로 사용하려면, 이맥스의 다양한 기능과 AWK의 강력한 텍스트 처리 능력을 잘 조합하는 것이 중요합니다.

#### @user
