sed란
- 편집에 특화된 명령어다
- vi/vim은 편집기를 열어서 수정하는 방식 ====sed는 명령행에서 파일을 인자로 받아 명령어를 통해 작업 한 후에 결과를 화면으로 확인 할 수 있다.
- 원본을 손상시키지 않는다. (다만 옵션을 통해 원본을 수정할 수 있다)
출력
sed -n '1p' ana : 첫번째 라인을 출력하라
sed -n '$p' ana : 마지막 라인을 출력하라
sed -n '1,5p' ana : 1에서5번째 라인을 출력하라
변경
sed -n 's/cdrom/CDROM/p' ana : 표준 출력에만 cdrom을 대문자로 바꿔서 출력
sed -i 's/cdrom/CDROM/p' ana : 원본에서 cdrom을 대문자로 바꿔라
ex)
sed -n 's/#//p' ana > ana1 -> 주석으로 되있는 것들만 지워서 파일로 저장
sed -n 's/^/#/p' ana ->모든 라인 주석 처리 하기
sed -n 's/^[!#]*/#/p' ana -> 이미 주석 처리가 되어있는 것은 제외
cat -n ana | sed -n '1~2p' | more -1 => 1번 부터 2스탭씩 출력해라 (홀수라인만 출력
cat -n ana | sed -n '0~2p' | more -1 => 0번 부터 2스탭씩 출력해라 (짝수라인만 출력
※p대신 d로 하면 삭제
옵션
※sed는 기본적으로 출력을 한다.
- p : 출력
- sed '/hi/p' test.txt => test 파일에서 hi 를 출력하고 한번더 출력
- d : 삭제
- sed '3d' test..txt => test 파일에서 3번째 줄을 삭제하고 나머지 출력
- sed '3, $d' test..txt => test 파일에서 3번째 줄부터 끝까지 삭제하고 나머지 출력
- s : 치환
- sed 's/abc/cba/g' test.txt. => abc라는 문자를 찾아서 cba로 치환 g는 글로벌로 전체
- sed 's/abc/cba/p' test.txt => abc라는 문자를 찾아서 cba로 치환 하고 그 줄만 출력
- , : 범위 지정
- sed -n '/a/,/b/p' test.txt => a와 b 사이의 패턴 범위에 있는 모든 줄을 출력
- sed -n '5,/^abc/p' test.txt => test 파일에서 5번째 줄부터 abc로 시작하는 첫번째 줄 까지 출력
- e : 다중편집
- sed -e '1,3d' ?e 's/#//' test.txt =>1에서 3번째 줄 삭제하고 주석(#) 삭제하고 출력
- r : 파일에서 읽기
- w : 파일에 쓰기
- a : 추가
- i : 삽입
- c : 변경
- n : 다음
- y : 변환
- q : 종료
- h, g : 보류와 얻기
- h, x : 보류와 교체
알아둘 것
셔뱅이란
운영체제 입장에서는 스크립트 파일이 어떤 문법으로 짜여진건지 모른다.
이걸 알려주기 위해 스크립트 첫줄에 #!/bin/bash 라고 작성해준다.
bash말고도 파이썬 php 등으로 적어주면 해당 문법으로 읽어드린다.
'Study > 리눅스' 카테고리의 다른 글
리눅스 9일차(보안) (0) | 2022.07.17 |
---|---|
리눅스 8일차(사용자 계정 관리) (0) | 2022.07.17 |
리눅스 6일차(awk) (0) | 2022.07.17 |
리눅스 5일차(vi 에디터) (0) | 2022.07.17 |
리눅스 4일차(방향 재지정 / find) (0) | 2022.07.17 |