[Linux] awk의 사용 방법(비고)

개시하다


텍스트 파일을 가공할 때 자주 사용하는awk 명령에 대해 알고 있는 범위 내에서 글을 쓰고 싶습니다.
아무튼 유튜브에서도 소개하고 싶어요.

무엇


프로그래밍 언어의 하나가 되다.
왼쪽
텍스트 파일의 가공, 추출 등을 잘 처리하는 언어입니다.

awk 사용 예


ls-L 결과에서 소유자/그룹 이름/파일 이름을 추출합니다.


일반 명령 실행 결과 (ls-L)
[cloudadmin@testlinux01 test]$ ls -l
合計 0
-rw-rw-r--. 1 cloudadmin cloudadmin 0 124 13:34 hello.awk
-rw-rw-r--. 1 cloudadmin cloudadmin 0 124 13:34 sample.awk
[cloudadmin@testlinux01 test]$
awk 실행 결과 사용하기
[cloudadmin@testlinux01 test]$ ls -l | awk '{print $3,$4,$9}'
cloudadmin cloudadmin hello.awk
cloudadmin cloudadmin sample.awk
[cloudadmin@testlinux01 test]$

"$3" 및 "$0" 정보


필드.
{ print $0 }			# レコード全体を表示
{ print $1, $2, $3 }		# 第1、第2、第3フィールドを表示
다음 명령의 실행 결과는 필드로 표시됩니다.
명령 실행 예
[cloudadmin@testlinux01 test]$ ls -l
合計 4
-rw-rw-r--. 1 cloudadmin cloudadmin  0 124 13:34 hello.awk
-rw-rw-r--. 1 cloudadmin cloudadmin  0 124 13:34 sample.awk
-rw-rw-r--. 1 cloudadmin cloudadmin 33 124 13:58 test.txt
[cloudadmin@testlinux01 test]$
필드/레코드
$1
$2
$3
$4
$5
$6
$7
$8
$9
1
-rw-rw-r--.
1
cloudadmin
cloudadmin
0
12월
4
13:34
hello.awk
2
-rw-rw-r--.
1
cloudadmin
cloudadmin
0
12월
4
13:34
sample.awk
3
-rw-rw-r--.
1
cloudadmin
cloudadmin
33
12월
4
13:58
test.txt
  • 전체 기록을 표시합니다.
  • 명령 실행 예
    [cloudadmin@testlinux01 test]$ ls -l | awk '{print $0}'
    合計 4
    -rw-rw-r--. 1 cloudadmin cloudadmin  0 124 13:34 hello.awk
    -rw-rw-r--. 1 cloudadmin cloudadmin  0 124 13:34 sample.awk
    -rw-rw-r--. 1 cloudadmin cloudadmin 33 124 13:58 test.txt
    [cloudadmin@testlinux01 test]$
    
  • 추출 기록 "$4"입니다.
  • 명령 실행 예
    [cloudadmin@testlinux01 test]$ ls -l | awk '{print $4}'
    
    cloudadmin
    cloudadmin
    cloudadmin
    [cloudadmin@testlinux01 test]$
    
  • 와grep의 조합.
  • 명령 실행 예
    [cloudadmin@testlinux01 test]$ ls -l | grep hello.awk | awk '{print $1,$3,$4,$9}'
    -rw-rw-r--. cloudadmin cloudadmin hello.awk
    [cloudadmin@testlinux01 test]$
    

    특정 파일 이름을 추출합니다.

    /etc/passwd에서 추출cloudadmin한 줄.grep와 같은 사용 방법.
    grep에서 추출
    [cloudadmin@testlinux01 ~]$ cat /etc/passwd | grep cloudadmin
    cloudadmin:x:1000:1000:cloudadmin:/home/cloudadmin:/bin/bash
    [cloudadmin@testlinux01 ~]$
    
  • 명령 구문
  • 명령하다
    awk '/文字列/' ファイル名
    
  • 실행 예
  • awk에서 추출
    [cloudadmin@testlinux01 ~]$ awk '/cloudadmin/' /etc/passwd
    cloudadmin:x:1000:1000:cloudadmin:/home/cloudadmin:/bin/bash
    [cloudadmin@testlinux01 ~]$
    

    텍스트 파일에서 일치하는 문자열 추출


    텍스트 파일에 일치하는 문자열이 있으면 추출됩니다.
  • 명령 구문
  • 명령하다
    awk '$0 == "文字列" { print $0}' ファイル名
    
  • 실행 예
  • 실행 예
    [cloudadmin@testlinux01 test]$ awk '$0 == "foo" { print $0}' test.txt
    foo
    [cloudadmin@testlinux01 test]$
    

    지정된 행 추출하기


    다음 파일에서 두 번째 줄을 추출합니다.
    test.txt
    foo
    82niupfa
    fajaf
    test
    testtest
    
  • 명령 구문
  • 명령하다
    awk ' NR == 行数 { print $0 }'  ファイル名
    
  • 실행 예
  • 실행 예
    [cloudadmin@testlinux01 test]$ awk ' NR == 2 { print $0 }'  test.txt
    82niupfa
    [cloudadmin@testlinux01 test]$
    

    최후


    이번에는 awk의 사용 방법에 대해 총결하였다.
    유튜브 소재이기도 해서 언젠가는 애니메이션을 만들지 않을까 생각한다.

    참고 자료


    awk가 뭐예요?당신은 무엇을 할 수 있습니까?되도록 간단명료하게 전달하다
    [초보자용] Awk 사용법
    동틀 무렵 AWK 시작
    awk에서grep처럼 줄 추출하기

    좋은 웹페이지 즐겨찾기