일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- FOR
- appendChild
- htmlFor
- VAR
- Openlayers
- createElement
- 학습법 #집중력
- Let
- const
- Append
- boolean
- input
- createtextnode
- Today
- Total
Atomic Habits
[리눅스] sed 편집기 - 빈 줄 제거 본문
sed 사용법 및 옵션 상세 : ★ https://soooprmx.com/sed-%EC%82%AC%EC%9A%A9%EB%B2%95-2/ ★
아래 내용 출처 : https://m31phy.tistory.com/263
sed 편집기를 이용하여 텍스트 파일의 빈 줄들을 제거하는 방법
0. 예제에서 사용할 파일
$ sed -n 'p' example.txt
apple apple apple apple apple
apple apple apple apple apple
apple apple apple apple apple
apple apple apple apple apple
MELON apple apple apple apple
1. 빈 줄 제거하기
$ sed '/^$/d' example.txt
a. d 명령(delete)을 사용해서 빈줄이 나타나는 줄을 삭제함
$ sed '/^$/d' example.txt
apple apple apple apple apple
apple apple apple apple apple
apple apple apple apple apple
apple apple apple apple apple
MELON apple apple apple apple
- 파일의 모든 빈 줄이 삭제됨
2. 시작 부분의 빈 줄 지우기
$ sed '/./,$!d' example.txt
a. 주소를 사용해서 sed 편집기가 처리할 부분을 할당
- /./ : 문자를 포함한 한 줄
- $: 데이터 스트림의 끝
- /./,$: 문자를 포함한 한 줄 (문자가 시작하는 첫번째 줄)부터 파일의 끝까지가 범위
/./ : 문자 포함한 첫 행(정규식) , : 부터 $ : 파일의 끝
b. !d: 주소 부분을 제외한 나머지를 삭제( ! : 제외 )
- 즉, 문자가 시작하는 첫번째 줄 이하의 빈칸은 삭제된다.
$ sed '/./,$!d' example.txt
apple apple apple apple apple
apple apple apple apple apple
apple apple apple apple apple
apple apple apple apple apple
MELON apple apple apple apple
- 앞에 있던 빈줄은 삭제되었지만, 맨 뒤에 있는 빈 줄은 삭제되지 않음
3. 끝에 있는 빈 줄을 삭제
$ sed '{
:start
/^\n*$/{$d; N; b start}
}' example_file
* ; 로 명령어를 구분.
* n N : 입력파일로부터 한 줄을 더 읽어들여서 패턴 공간에 복사/이어붙이기한다.
* N; 에 대한 다른 설명 https://ktdsoss.tistory.com/135
* b label : 주어진 라벨로 이동한다. 라벨명이 생략되면 스크립트의 끝으로 이동한다. (라벨은 스크립트 내에서 :label_name의 형식으로 정의한다.
Example
$ sed '{
:start
/^\n*$/{$d; N; b start}
}' example.txt
apple apple apple apple apple
apple apple apple apple apple
apple apple apple apple apple
apple apple apple apple apple
MELON apple apple apple apple
- 파일의 뒷 부분의 빈 줄만 삭제됨
'IT > Linux-Vim' 카테고리의 다른 글
[리눅스/유닉스] 백 슬래쉬(\) 문자, Back Slash 섞인 문자열 찾기 (0) | 2021.12.26 |
---|---|
[★유용★] SED-명령어-사용법(찾기, 치환, 삭제 등) (0) | 2021.12.26 |
[리눅스] 파일 분할 split (0) | 2021.12.04 |
[리눅스] 파일 분할 split (0) | 2021.12.01 |
[리눅스] perl을 이용한 치환 (빠른 편) (4) | 2021.12.01 |