[Linux] sed
sed는 스트림 편집기(Stream Editor)의 약자로, 텍스트 파일을 처리하고 변환하는 데 매우 유용한 도구다.
sed는 주로 대량의 텍스트 데이터에서 패턴을 검색하고, 치환하고, 필터링하는 작업에 사용된다.
기본 사용법
sed 명령어의 기본 형식은 다음과 같다.
sed [옵션] '명령' 파일명
텍스트 치환
먼저 example.txt 파일을 다음과 같이 생성한다.
cat > example.txt
Hello, World!
This is a sed tutorial
Let's learn sed together.
가장 기본적인 sed 명령어는 텍스트 치환이다. 파일의 특정 문자열을 다른 문자열로 바꾸는 예제를 확인해보자.
Hello를 Hi로 바꾸기 위해 다음과 같은 명령어를 입력한다.
sed 's/Hello/Hi/' example.txt
Hi World!
This is a sed tutorial.
Let's learn sed together.
위 명령어에서 s는 substitute(치환)을 의미하며 첫번째 / 와 두번째 / 사이에 검색 할 문자열을,
두번째 / 와 세번째 / 사이에 치환할 문자열을 넣는다.
파일에 변경 사항 저장하기
기본적으로 sed는 표준 출력으로 결과를 출력한다.
변경 사항을 원본 파일에 저장하기 위해선 -i 옵션을 사용한다.
sed -i 's/Hello/Hi/' example.txt
cat example.txt
Hi World!
This is a sed tutorial.
Let's learn sed together.
모든 일치하는 문자열 치환하기
기본적으로 sed는 각 줄에서 첫 번째로 일치하는 문자열만 치환한다.
모든 일치하는 문자열을 치환하려면 g 플래그를 추가해야한다.
sed 's/sed/SED/g' example.txt
Hi World!
This is a SED tutorial.
Let's learn SED together.
특정 줄에서만 치환하기
특정 줄에서만 치환하려면 줄 번호를 지정할 수 있다.
예를 들어 두 번째 줄에서만 치환하려면 다음과 같이 입력한다.
sed '2s/sed/SED/' example.txt
Hi World!
This is a SED tutorial.
Let's learn sed together.
여러 명령어 실행하기
여러 명령어를 실행하기 위해선 -e 옵션을 사용하거나 세미콜론(;)을 사용하여 명령어를 구분할 수 있다.
# -e 옵션
sed -e 's/Hi/Hello/' -e 's/SED/sed/' example.txt
# 세미콜론(;)
sed 's/Hi/Hello/'; 's/SED/sed/' example.txt
Hello, World!
This is a sed tutorial
Let's learn sed together.
정규 표현식 사용하기
sed 강력한 정규 표현식을 지원한다.
예를 들어, 숫자를 #으로 대체하려면 다음과 같이 할 수 있다.
echo "The year is 2024." | sed 's/[0-9]\+/#/g'
The year is #.
sed에 관한 더 많은 기능은 매뉴얼 페이지에서 확인 할 수 있다.
man sed
'🌏 OS > Linux' 카테고리의 다른 글
[Linux] bash에서 yaml 파일 load하기 (0) | 2024.07.18 |
---|---|
[Linux] 사용자에게 sudo 권한 부여 (0) | 2024.07.05 |
[Linux] umask (0) | 2024.06.17 |
[Linux] failed to enable unit: Unit file /lib/systemd/system/nfs-common.service is masked (0) | 2024.06.11 |
[Linux] namespace, cgroup (0) | 2024.04.16 |