리눅스 명령어 grep, awk, sed

2022. 12. 19. 21:10Linux

grep

  • 특정 조건에 맞는 문자열 패턴 검색
  • 라인(줄) 단위로 출력
  • 형식
    • grep '문자열' 파일경로
      grep 'samadal' /etc/passwd
[root@localhost bash]# grep 'samadal' /etc/passwd
samadal:x:1000:1000:samadal:/home/samadal:/bin/bash

[root@localhost bash]# grep -v 'samadal' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

[root@localhost bash]# grep 'samadal' /etc/passwd | nl
     1  samadal:x:1000:1000:samadal:/home/samadal:/bin/bash

 


awk

  • 특정 조건에 맞는 패턴을 검색(열(필드) 단위로 출력)
  • 문법
    • awk로 시작
      • awk 'PATTERN' 파일명
      • awk {'PATTERN'} 파일명
      • awk '/PATTERN/ {ACTION}' 파일명
    • 명령어(command)의 결과를 이용할 경우
      • command | awk 'PATTERN'
      • command | awk '{ACTION}'
      • command | awk 'PATTERN {ACTION}'
      • command | awk '{print $NF}' (맨 끝을 의미)
[root@localhost bash]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        471M     0  471M   0% /dev
tmpfs           487M     0  487M   0% /dev/shm
tmpfs           487M  8.2M  478M   2% /run
tmpfs           487M     0  487M   0% /sys/fs/cgroup
/dev/sda1        22G  5.1G   16G  25% /
tmpfs            98M   12K   98M   1% /run/user/42
tmpfs            98M     0   98M   0% /run/user/0
[root@localhost bash]# df -h | awk '{print $6,$5}'
Mounted Use%
/dev 0%
/dev/shm 0%
/run 2%
/sys/fs/cgroup 0%
/ 25%
/run/user/42 1%
/run/user/0 0%

[root@localhost bash]# awk '/halt$/ {print $1}' /etc/passwd
halt:x:7:0:halt:/sbin:/sbin/halt
[root@localhost bash]# awk 'BEGIN{FS=":"} /halt$/ {print $1}' /etc/passwd
halt

sed

  • 저장이 안되는 결과값(39%) 등을 저장하기 위해 '%'를 제거해주는 유틸리티
  • 메모리 버퍼에서 문자열을 편집하는 기능
  • vi에디터의 치환과 유사한 기능
[root@localhost bash]# df -h | awk '{print $5}'
Use%
0%
0%
2%
0%
25%
1%
0%
[root@localhost bash]# df -h | awk '{print $5}' | sed 's/%/!/'
Use!
0!
0!
2!
0!
25!
1!
0!

특정 행 출력

| sed -n 3p


``백쿼터. 명령어 안에서 명령어 먼저 사용.

[root@localhost bash]# tail -3 /etc/passwd `mkdir a`; ls -l
named:x:25:25:Named:/var/named:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
user1:x:1001:1001::/home/user1:/bin/bash
합계 28
drwxr-xr-x 2 root root 4096 12월 19 20:58 a
drwxr-xr-x 2 root root 4096 12월 19 15:36 hp
-rwx------ 1 root root  515 12월 19 17:33 main.bash
-rwx------ 1 root root   39 12월 19 17:27 main_ppsd.bash
-rwx------ 1 root root   58 12월 19 16:35 main_user.bash
drwxr-xr-x 2 root root 4096 12월 19 16:53 ppsd
drwxr-xr-x 2 root root 4096 12월 19 16:40 user

[root@localhost bash]# date
2022. 12. 19. (월) 21:08:45 KST
[root@localhost bash]# date +%Y
2022
[root@localhost bash]# date +%y
22
[root@localhost bash]# date +%M
08
[root@localhost bash]# date +%m
12
[root@localhost bash]# date +%D
12/19/22
[root@localhost bash]# date +%d
19
[root@localhost bash]# date +%H
21
[root@localhost bash]# date +%h
12월
[root@localhost bash]# date +%S
27
[root@localhost bash]# date +%s
1671451773

'Linux' 카테고리의 다른 글

crontab  (13) 2022.12.20
쉘 스크립트 맛보기  (12) 2022.12.20
1214수업, 리눅스xe복습, 윈도우관리,  (3) 2022.12.14
1213수업. httpd, xe설치  (3) 2022.12.13
14. 프로세스  (3) 2022.09.25