반달가면 이글루에서 백업 - http://bahndal.egloos.com/641643
간단한 내용이지만 의외로 사용할 일이 많아서 여기에 정리해 두기로.
출력 결과의 앞쪽에 공백이 여러칸 있는 경우, sed의 문자열 대체 기능을 이용해서 제거할 수 있다. 아래의 예시를 보자.
# 기본 예시: sed에서 문자열 abc를 123으로 대체
echo "abcd" | sed 's/abc/123/'
123d
# test1.txt 파일의 내용 출력
cat test.txt
abc
def
ghi
위의 경우 맨 앞의 공백이 동일하게 2칸씩이다. 이런 경우는 아래와 같이 제거해 주면 되겠다. 정규표현식(regular expression, regex)에서 행 맨처음을 나타내는 "^" 기호를 사용한다.
# test1.txt 출력, 각 행 앞쪽의 공백 2칸 제거
cat test1.txt | sed 's/^ //'
abc
def
ghi
행 앞의 공백 칸수가 일정하지 않은 경우에는 아래와 같이 제거해 주면 된다. 개수가 불분명하므로 sed에서 문자열 대체를 지정할 때 "*" 기호를 사용한다.
# test2.txt 파일의 내용 출력
cat test2.txt
123
456
789
abc
# test2.txt 출력, 각 행 앞쪽의 공백 제거
cat test2.txt | sed 's/^ *//'
123
456
789
abc
728x90
'bash script' 카테고리의 다른 글
[bash: bc, sed] 1보다 작거나 -1보다 큰 계산 결과에서 앞자리에 0 표시하기 (.5 -> 0.5) (0) | 2023.10.16 |
---|---|
[bash: tail] 텍스트 파일 내용의 끝부분 출력 (0) | 2023.10.16 |
리눅스 bash 스크립트에서 변수/배열/연관배열 삭제/초기화 (0) | 2023.10.16 |
[bash:awk] awk를 이용한 분산/표준편차 계산 (0) | 2023.10.12 |
[bash:awk] awk를 이용한 평균값 계산 (0) | 2023.10.12 |