티스토리 뷰
리눅스 쉘 스크립트 기초 sed 명령어와 옵션을 배워 보자~
sed 명령어는 많은 파일의 내용을 한꺼번에 변경할 때 그리고 리눅스 쉘 스크립트를 빠르게 처리할 때
많이 사용된다. 그리고 vi 편집기에서 사용되는 문장 변경 같은 sed 명령어 옵션도 거의 같다.
참고로 한 두 개의 항목을 수정할대는 sed를 사용하지 않고 그냥 직접 하자... 오타 나면 또다시 다 바꿔야 한다... 한 개로 끝날 문제를 크게 만드는 짓이 된다.
목차
sed 명령어 예제
리눅스 쉘 스크립트 sed 명령어 사용법
sed 명령의 사용법 들은 vi 편집기에서 사용되는 내용가 거의 비슷하다
예로 s/root/user1/g 처럼 root로 시작하는 문자를 user1로 바꾸어라 처럼 사용하게 되나.
특수 문자를 이용해서 활용하는 방법들을 보자
sed 명령어 한꺼번에 많은 파일 변경 하기
sed 명령어로 여러 파일을 내용을 동시에 수정(치환) 할 수 있다
리눅스 쉘 스크립트 sed 명령어 옵션들을 활용 하는 방법은 아래와 같다.
$ find . -type -f -print0 | xargs -O sed -i 's/root/user1/g'
# 현재 디렉토리 파일들 의 내용중 root 문자를 user1 바꾼다.
$ find . -name "root*" | xargs sed -i '/^$/d'
# 빈줄을 모두 찾아서 한꺼번에 삭제 한다.
sed 사용 예제
리눅스 쉘 스크립트를 작성할 때 사용되는 vi 편집기에서 파일 내용을 수정할 때 편집 모드에서 10d를 누르면 라인 10에 내용을 삭제하게 된다.
이처럼 vi 편집기에 내용을 수정하는 방법에 익숙 하다면 sed 명령어 을 거의 안다고 할 수 있다.
옵션과 몇 가지 예를 정리해보자
$ sed --help Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... |
|
sed '10d' /log | /log 파일에 10번 라인을 삭제 후 출력 |
sed '1,20' /og | /log 파일에 1 부터 20번 라인을 삭제 후 출력 |
sed '/^$/d' /log | /log 파일에 빈라인 을 모두 삭제 후 출력 |
sed '1,/^$/d' /log | /log 파일에 1라인 부터 처음 나타나는 빈라인 까지 삭제 후 출력 |
sed 's/*$//' /log | /log 파일에 모든 줄에 나오는 빈 칸을 삭제 후 출력 |
sed 's/root/user1/' /log | /log 파일에 각 줄에서 첫번째 root만 user1 로 바꾸어 출력 |
sed 's/root/user1/g' /log | /log 파일에 각 줄에서 root를 모두 user1 로 바꾸어 출력 (s : substitute , g: global 을 뜻함) |
sed -i 's/root/user1/g' /log | /log 파일에 root 를 모두 user1 로 바꾸고 파일에 적용 한다 |
sed -i 's/root/user1/g' /log > newlog | /log 파일에 root 를 모두 user1 로 바꾸고 newlog 파일로 저장한다. |
정리
예를 들은 내용을 보면 vi 편집기에서 파일을 수정할 때 사용하는 옵션을 그대로 사용한다는 걸 볼 수 있다.
리눅스 쉘 스크립트를 사용하다 보면 파일 내용 수정 같은 반복 작업이 많을 때가 있는데
sed 옵션들을 꼭 알아 두면 너무 좋다~
내일은 리눅스 쉘 스크립트에서 역시나 자주 사용되는 awk 명령어를 알아보자~~~
'System > etc' 카테고리의 다른 글
리눅스 쉘 스크립트 기초 - awk 명령어 -옵션 (0) | 2022.11.24 |
---|---|
리눅스 쉘 스크립트 기초 - grep 명령어 사용법 (0) | 2022.11.22 |
리눅스 쉘 스크립트 기초 - read 명령어 및 옵션 (0) | 2022.11.21 |
리눅스 쉘 스크립트 기초 - echo 명령어 및 옵션 (0) | 2022.11.21 |
리눅스 쉘 스크립트 - 환경 변수 설정 방법 (0) | 2022.11.19 |
- Total
- Today
- Yesterday
- gzip
- 주소DB만들기
- RCity operation 1
- 리눅스 쉘 스크립트
- rhcsa8 시험문제
- grootsecuriry
- 리눅스
- PODman기초
- rhcsa8 덤프
- Grootsecurity
- 파이썬실습
- rhcsa8 기출문제
- CTF
- Rcityboan.com
- Rcity 9번
- rhcsa8
- 쉘 스크립트 기초
- 리눅스 명령어
- 리눅스본딩
- 리눅스 환경변수 지정
- rhcsa8덤프
- grootboan
- Rcity1번
- 파이썬기초
- 맨탈훈련
- Rcity
- Rcity CTF
- 라쿤시티
- podman
- 7-zip
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |