Unixでsedコマンドを使用する

Unixでsedコマンドを使用する

ファイルから単語を取得して絶対パスに変更するには?デフォルトでは、Unixファイルから1つの単語を取得し、そのファイル内の絶対ディレクトリパスに変更する必要があります。ファイル名はhttpd.confです。このファイルのパスは /home/Tina/apache/conf/httpd.conf です。行は ServerRoot "/usr" です。 "/usr"を/home/Tina/apacheに変更する必要があります。

Tina@Irv-PC ~/apache/conf
$ cat httpd.conf
#
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.

# Do not add a slash at the end of the directory path.
#
ServerRoot "/usr"

#
# DocumentRoot: The directory out of which you will serve your documents.
#
DocumentRoot "/Library/WebServer/Documents"

ベストアンサー1

この試み:

$ sed -i.orig '/ServerRoot/s_"/usr"_/home/Tina/apache_' /home/Tina/apache/conf/httpd.conf

周囲に二重引用符を入れるには/home/Tina/apache

$ sed -i.orig '/ServerRoot/s_"/usr"_"/home/Tina/apache"_' /home/Tina/apache/conf/httpd.conf

まず、行に「ServerRoot」(/ServerRoot/)が含まれている場合は一致し、そうであれば必要な置換(s_"/usr"_"/home/Tina/apache"_)を実行します。/pathで使用したのと同じように、代替区切り_文字を使用しましたsed。変更されたファイルはであり、/home/Tina/apache/conf/httpd.conf元のファイルはのままです/home/Tina/apache/conf/httpd.conf.orig

おすすめ記事