![sed 특정 라인 패턴 검색 끝에 경로 추가](https://linux55.com/image/133885/sed%20%ED%8A%B9%EC%A0%95%20%EB%9D%BC%EC%9D%B8%20%ED%8C%A8%ED%84%B4%20%EA%B2%80%EC%83%89%20%EB%81%9D%EC%97%90%20%EA%B2%BD%EB%A1%9C%20%EC%B6%94%EA%B0%80.png)
검색 모드를 사용하여 특정 줄 끝에 경로 변수를 추가하고 추가하고 싶습니다."기본 안전 경로"추가하고 싶은 문자열::/etc/bla/foo/
문서,
파일 이름
# asdf
# lkaj
# asdah
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
## safdafdhdahdabfdabf
## Aedhadhfdahdahadhda
시도된 패턴 검색"기본 안전 경로"줄 끝에 추가됩니다.
sed '/^Defaults secure_path = / s/$/ :/etc/bla/foo/' filename
그러나 오류가 발생합니다.
sed -e expression #1, char 38: unknown option to `s'
답변1
awk 명령을 사용하여 추가할 수 있습니다.
bash-4.1$ cat filename
# asdf
# lkaj
# asdah
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
## safdafdhdahdabfdabf
## Aedhadhfdahdahadhda
bash-4.1$
bash-4.1$ awk '$0~/Defaults.*secure_path/{$0=$0":/etc/bla/foo/"}1' filename
# asdf
# lkaj
# asdah
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/etc/bla/foo/
## safdafdhdahdabfdabf
## Aedhadhfdahdahadhda
이 awk 명령은 "Defaults" 패턴을 검색하여 해당 값을 줄 끝에 추가합니다.
사용sed주문하다
bash-4.1$ sed "s?\(Defaults.*secure_path.*\)?\1:/etc/bla/foo/?" filename
# asdf
# lkaj
# asdah
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/etc/bla/foo/
## safdafdhdahdabfdabf
## Aedhadhfdahdahadhda