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"]
와 같이 원하는 형태의 필드 배열을 확인 할 수 있다.