sed 명령어를 통해 파일 내용의 문장이나 단어를 변경할 수 있다.
하지만 기본적으로 바꾸고자 하는 문자 포함이면
모두 바꾸기 때문에 바꾸고자 하는 단어가 정확히 일치할 때 변경하는 방법을 찾아야한다.
해결방법
sed -i -e '/^aaaa,bbbbb$/s/a,b/new_string/' filename.txt
예를들어 filename.txt가 아래와 같이 구성되어있을 때
aaaa,bbbb,ccc
aaaa,bbbb
aaaa,bbbb,ccc,dddd
sed -i -e '/aaaa,bbbbb/s/a,b/new_string/' filename.txt
명령어를 수행하면 다음과 같이 출력된다
a,b,ccc
a,b
a,b,ccc,dddd
내가 원하는것은 두번째 라인만 변경을 원하는 것이다 따라서 첫번째와 마지막을 구분시켜야하는데
이때
문자의 시작은 ^
문자의 끝은 $
를 넣어서 정확하게 일치할 때만 바꾸도록 사용할 수 있다.
쉘스크립트 정확한 문자 바꾸기
sed 정확히 일치
sed 정확할 때 바꾸기
반응형
'프로그래밍 > shellscript' 카테고리의 다른 글
[SHELLSCRIPT] 쉘스크립트 리눅스 계정 패스워드 만료기한 남은일수 조회 (0) | 2023.12.06 |
---|---|
[쉘 스크립트] 리눅스 for문 Syntax error : Bad for loop variable (0) | 2023.11.13 |
[shellscript] grep -r 하위 폴더 포함 파일 내용 검색하기 (0) | 2023.10.24 |
[shellscript] awk v옵션 문자를 찾고 같은 행 특정 열 치환하기 (0) | 2023.04.18 |
[powershell] 파워쉘 윈도우 계정 패스워드 변경 (0) | 2022.07.26 |
댓글