Home [Ubuntu] sed 사용
Post
Cancel

[Ubuntu] sed 사용

Overview

Ubuntu 환경에서 치환을 하는 경우가 많아 sed를 자주 사용하는데 내용을 정리하지 않고 사용하다 보니 매번 찾아보는 경우가 발생해서 내용을 정리하고 사용시 업데이트 하려한다.

Use sed

다중공백을 단일공백으로 치환

cut -d ' ' -f2처럼 cut을 사용하는 경우가 많은데 다중공백이 있을경우 의도치 않은 내용이 반환되는 경우가 잦다.
이를 위해 다중공백을 단일공백으로 치환해야하는 경우가 발생. 아래와 같이 처리가 가능하다.

1
2
3
4
5
6
7
8
$ echo "AB CD  EFG   HI JK LMN     OP" | cut -d ' ' -f7
HI

$ echo "AB CD  EFG   HI JK LMN     OP" | sed -e 's/ \+/ /g'
AB CD EFG HI JK LMN OP

$ echo "AB CD  EFG   HI JK LMN     OP" | sed -e 's/ \+/ /g' | cut -d ' ' -f7
OP

cut을 통해 7번째 필드를 출력할 때 의도는 OP를 출력할 목적으로 하였지만 HI가 출력되었다.
첫번 째 값은 ["AB", "CD", " ", "EFG", " ", " ", "HI", "JK", "LMN", " ", " ", " ", " ", "OP"]와 같은 형태이며 7번째 필드에는 HI 가 존재한다.
sed를 통해 다중공백을 단일 공백으로 치환 시 ["AB", "CD", "EFG", "HI", "JK", "LMN", "OP"]와 같이 원하는 형태의 필드 배열을 확인 할 수 있다.

This post is licensed under CC BY 4.0 by the author.