検索モードを使用して、特定の行の末尾にパス変数を追加して追加したいと思います。「基本安全経路」追加したい文字列::/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