티스토리 뷰
Overview
터미널 명령어 중 텍스트 처리에 관련된 명령어를 정리합니다. 다양한 옵션이 존재하지만 실무에서 사용하는 것들 위주로 정리하였습니다.
cut
Description
파일 내용을 컬럼을 기준으로 잘라내 출력합니다.
Options
- -b: byte 기준으로 잘라냄
- -c: character 기준으로 잘라냄
- -f: 필드 기준으로 잘라냄
- -d: delimiter 지정
- --complement: 선택을 반전시킴
- --output-delimiter=<>: 지정한 구분자와 함께 출력
Examples
-f
, -d
> wc -l /etc/passwd
123 /etc/passwd
> wc -l /etc/passwd | cut -f 6 -d ' '
123
이전 포스팅에서 다뤘던 wc를 -l 옵션을 이용해 라인수만 나오도록 출력한 뒤 cut과 같이 사용하여 라인수만 획득하였습니다.
-f를 이용해 6번째 필드를 지정하였고 -d로 delimiter를 공백으로 지정하여 6번째 칸에 해당하는 123을 가져옵니다.
여러 컬럼 지정
> tail /etc/passwd
_demod:*:275:275:Demo Daemon:/var/empty:/usr/bin/false
_rmd:*:277:277:Remote Management Daemon:/var/db/rmd:/usr/bin/false
_accessoryupdater:*:278:278:Accessory Update Daemon:/var/db/accessoryupdater:/usr/bin/false
_knowledgegraphd:*:279:279:Knowledge Graph Daemon:/var/db/knowledgegraphd:/usr/bin/false
_coreml:*:280:280:CoreML Services:/var/empty:/usr/bin/false
_sntpd:*:281:281:SNTP Server Daemon:/var/empty:/usr/bin/false
_trustd:*:282:282:trustd:/var/empty:/usr/bin/false
_darwindaemon:*:284:284:Darwin Daemon:/var/db/darwindaemon:/usr/bin/false
_notification_proxy:*:285:285:Notification Proxy:/var/empty:/usr/bin/false
_oahd:*:441:441:OAH Daemon:/var/empty:/usr/bin/false
> tail /etc/passwd | cut -d ":" -f 1,2
_demod:*
_rmd:*
_accessoryupdater:*
_knowledgegraphd:*
_coreml:*
_sntpd:*
_trustd:*
_darwindaemon:*
_notification_proxy:*
_oahd:*
tail을 이용하여 파일의 마지막을 출력했고, 콜론(:)으로 파싱하여 첫 번째와 두 번째 컬럼의 값을 출력하기 위해 -f 옵션 뒤에 콤마로 구분된 두 개의 인자를 전달하였습니다.
-b
특정 디렉토리의 권한만 출력하고 싶을 때는 바이트 기준으로 잘라주시면 됩니다.
> ls -al | cut -b 1-10
total 40
drwxr-xr-x
drwxr-xr-x
-rw-r--r--
drwxr-xr-x
-rw-r--r--
drwxr-xr-x
-rw-r--r--
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
1-10은 1byte에서 10byte까지를, -10도 역시 마찬가지로 1~10 byte를, 10-는 10byte 이후부터 끝까지를 잘라줍니다.
> ls -al | cut -b -10
total 40
drwxr-xr-x
drwxr-xr-x
-rw-r--r--
drwxr-xr-x
-rw-r--r--
drwxr-xr-x
-rw-r--r--
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
> ls -al | cut -b 10-
x 10 jaime staff 320 Dec 10 08:39 .
x 44 jaime staff 1408 Dec 4 02:14 ..
-@ 1 jaime staff 6148 Aug 4 02:48 .DS_Store
x 15 jaime staff 480 Dec 26 02:54 .git
- 1 jaime staff 18 Aug 5 01:18 .gitignore
x 12 jaime staff 384 Dec 26 03:09 .idea
- 1 jaime staff 5597 Dec 10 08:39 README.md
x 4 jaime staff 128 Aug 3 00:24 docs
x 4 jaime staff 128 Jul 10 11:58 images
x 6 jaime staff 192 Dec 18 03:46 resources
tr
Description
파일의 내용을 치환하여 출력합니다.
usage: tr [-Ccsu] string1 string2
tr [-Ccu] -d string1
tr [-Ccu] -s string1
tr [-Ccu] -ds string1 string2
Options
- -c, -C, --complement: 선택 반전
- -d, --delete: 인자에 해당하는 부분을 지워줌
- string1, string2, ...
- char1-char2: char1부터 char2까지
- [:alnum:]: 문자 + 숫자
- [:alpha:]: 문자
- [:blank:]: 공백
- [:space:]: 공백 + newline
- [:digit:]: 10진수
- [:xdigit:]: 16진수
- [:lower:]: 소문자
- [:upper:]: 대문자
Examples
-d
> tail /etc/passwd | tr -d ':'
_demod*275275Demo Daemon/var/empty/usr/bin/false
_rmd*277277Remote Management Daemon/var/db/rmd/usr/bin/false
_accessoryupdater*278278Accessory Update Daemon/var/db/accessoryupdater/usr/bin/false
_knowledgegraphd*279279Knowledge Graph Daemon/var/db/knowledgegraphd/usr/bin/false
_coreml*280280CoreML Services/var/empty/usr/bin/false
_sntpd*281281SNTP Server Daemon/var/empty/usr/bin/false
_trustd*282282trustd/var/empty/usr/bin/false
_darwindaemon*284284Darwin Daemon/var/db/darwindaemon/usr/bin/false
_notification_proxy*285285Notification Proxy/var/empty/usr/bin/false
_oahd*441441OAH Daemon/var/empty/usr/bin/false
-d
옵션을 사용하여 콜론을 모두 삭제하였습니다.
string1 string2
> tail /etc/passwd | tr ':' '/'
_demod/*/275/275/Demo Daemon//var/empty//usr/bin/false
_rmd/*/277/277/Remote Management Daemon//var/db/rmd//usr/bin/false
_accessoryupdater/*/278/278/Accessory Update Daemon//var/db/accessoryupdater//usr/bin/false
_knowledgegraphd/*/279/279/Knowledge Graph Daemon//var/db/knowledgegraphd//usr/bin/false
_coreml/*/280/280/CoreML Services//var/empty//usr/bin/false
_sntpd/*/281/281/SNTP Server Daemon//var/empty//usr/bin/false
_trustd/*/282/282/trustd//var/empty//usr/bin/false
_darwindaemon/*/284/284/Darwin Daemon//var/db/darwindaemon//usr/bin/false
_notification_proxy/*/285/285/Notification Proxy//var/empty//usr/bin/false
_oahd/*/441/441/OAH Daemon//var/empty//usr/bin/false
tr 뒤에 두 개의 인자를 주어 앞 인자에 해당하는 문자열을 뒷 인자에 해당하는 문자열로 치환하였습니다.
[:lower:] [:upper:]
> tail /etc/passwd | tr '[:lower:]' '[:upper:]'
_DEMOD:*:275:275:DEMO DAEMON:/VAR/EMPTY:/USR/BIN/FALSE
_RMD:*:277:277:REMOTE MANAGEMENT DAEMON:/VAR/DB/RMD:/USR/BIN/FALSE
_ACCESSORYUPDATER:*:278:278:ACCESSORY UPDATE DAEMON:/VAR/DB/ACCESSORYUPDATER:/USR/BIN/FALSE
_KNOWLEDGEGRAPHD:*:279:279:KNOWLEDGE GRAPH DAEMON:/VAR/DB/KNOWLEDGEGRAPHD:/USR/BIN/FALSE
_COREML:*:280:280:COREML SERVICES:/VAR/EMPTY:/USR/BIN/FALSE
_SNTPD:*:281:281:SNTP SERVER DAEMON:/VAR/EMPTY:/USR/BIN/FALSE
_TRUSTD:*:282:282:TRUSTD:/VAR/EMPTY:/USR/BIN/FALSE
_DARWINDAEMON:*:284:284:DARWIN DAEMON:/VAR/DB/DARWINDAEMON:/USR/BIN/FALSE
_NOTIFICATION_PROXY:*:285:285:NOTIFICATION PROXY:/VAR/EMPTY:/USR/BIN/FALSE
_OAHD:*:441:441:OAH DAEMON:/VAR/EMPTY:/USR/BIN/FALSE
소문자를 대문자로 치환하였습니다.
'Linux' 카테고리의 다른 글
터미널 명령어: 편집 및 스크립팅 (sed, awk) (0) | 2022.01.01 |
---|---|
터미널 명령어: 정렬과 중복 처리 (sort, uniq) (0) | 2021.12.23 |
터미널 명령어: 텍스트 처리 (head, tail, wc, nl) (0) | 2021.12.18 |
리눅스 alias(별칭) 등록 및 사용법 (0) | 2019.10.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 스프링 부트 회원 가입
- Linux
- leetcode
- intellij
- spring boot jwt
- JSON
- proto3
- Spring Boot Tutorial
- 스프링 부트 튜토리얼
- spring boot app
- Java
- JPA
- Spring Boot
- 스프링 부트 애플리케이션
- 함께 자라기
- Spring Boot JPA
- Spring Data JPA
- 함께 자라기 후기
- r
- gRPC
- 클린 아키텍처
- 스프링 데이터 jpa
- 스프링부트
- Jackson
- 알고리즘
- 헥사고날 아키텍처
- QueryDSL
- @ManyToOne
- 스프링 부트
- spring boot application
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함