안녕하세요. 교육이입니다.^^
오늘은 리눅스의 sed 명령어로,
파일의 내용을 수정하는 방법을 알아볼게요.
vi 에디터에서 할 수 있는 작업이지만…
수정하려는 파일이 아주 클 경우에는 vi에디터로 파일을 열 때도 아주 오랜 시간이 걸리기 때문에 sed를 사용하면 파일을 열지 않고 수정할 수 있어서 작업 시간이 단축되요.
① 기본 사용방법
$ cat 파일명 | sed 조건
저는 sed 명령어를 cat 명령어로 파일에서 입력을 받고,
파일의 정보를 수정해요.
② 특정 행 출력
cat ori.txt
제가 준비한 파일은 단백질 구조를 담고 있는 파일의 일부예요.
$ cat ori.txt | sed -n 3p
$ cat ori.txt | sed -n 3,7p
-n와 p를 이용해서 3행만 출력하거나, 3~7행을 출력하는 방법이예요.
$ cat ori.txt | sed -n '3p;5p;7p'
-n과 p로 선택한 행만 출력할 수 있어요.
$ cat ori.txt | sed -n '/LEU/p'
-n과 p로 특정 문자열이 포함된 열을 출력할 수 있어요.
③ 특정 행 제거
$ cat ori.txt | sed 3d
$ cat ori.txt | sed 3,7d
$ cat ori.txt | sed '3d;7d'
d를 사용하면 선택한 행을 지우고 출력할 수 있어요.
$ cat ori.txt | sed '/LEU/d'
d를 사용하면 특정 문자열이 포함된 행을 제외하고 출력이 가능해요.
④ 문자열 치환(substitute)
$ cat ori.txt | sed '1,$ s/HIS/TTT/'
sed 조건란에 위와 같이 입력하면 HIS를 TTT로 변환합니다.
1,$는 첫번째 행부터 마지막 행까지 모두 수행하는 것으로 없어도 결과는 같아요.
만약, 특정한 행에 대해 수행하고 싶으면 1,$ 대신 3,7로 수정하면 3~7행에 대해서 적용이 돼요.
$ cat ori.txt | sed '1,$ s/0/T/'
$ cat ori.txt | sed '1,$ s/0/T/g'
치환을 할 때, 각 행의 첫번째 문자열만 치환을 하게 되는데,
행의 모든 문자열을 치환하고 싶으면 조건의 마지막에 g를 추가해요.
⑤ 문자열 제거
$ cat ori.txt | sed '1,$ s/LEU//g'
$ cat ori.txt | sed '1,$ s/LEU/ /g'
치환을 응용하면 문자열을 없앨 수 있어요.
치환할 자리에 띄어쓰기를 하면 공백이 생겨요.
$ cat ori.txt | sed '1,$ s/..//'
$ cat ori.txt | sed '1,$ s/…$//'
처음 문자 또는 마지막 문자를 ‘.’의 개수에 따라 제거할 수 있어요.
$ cat ori.txt | sed '1,$ s/\./TT/g'
기호 ‘.’을 치환하려면 역슬래시 \를 ‘.’ 앞에 사용해요.
이상으로, sed 명령어를 사용하는 몇가지 방법을 알아봤어요.
오늘도 즐거운 하루 되세요~ ^^
'리눅스' 카테고리의 다른 글
리눅스 vim(vi) 에디터 - 자주 사용하는 단축키, 명령어 모음 (1) | 2024.02.05 |
---|---|
리눅스 bash 스크립트를 이용한 for 반복문, if 조건문 (bash script) (0) | 2024.02.03 |
리눅스 awk 명령어를 이용한 정보 출력 및 사칙연산 (awk command) (0) | 2024.02.02 |
리눅스 find 명령어를 이용한 파일 및 디렉토리 검색 (find command) (0) | 2024.02.01 |
아나콘다 특정 패키지 설치 (1) | 2024.02.01 |