검색 모드를 사용하여 특정 줄 끝에 경로 변수를 추가하고 추가하고 싶습니다."기본 안전 경로"추가하고 싶은 문자열::/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