基本上,我想做的是用其他东西替换从 awk 解析的结果。我有以下 awk 命令:
awk '$1~/^DocumentRoot/{print $2}' /etc/apache2/sites-available/default
哪个返回:
/var/www/
我想要做的是替换/var/www/
文件中的(当然,它可以是任何东西,而不是/var/www/)。我试图通过管道传输一个 sed 命令,但我不知道该怎么做......
任何人都可以帮忙吗?
捕获text
变量中的结果,然后捕获sed -i
它。
text=$(awk '$1~/^DocumentRoot/{print $2}' /etc/apache2/sites-available/default)
sed -i "s#$text##g" /etc/apache2/sites-available/default
根据您的评论
文件是这样的: DocumentRoot /var/www 但它也可以是: DocumentRoot /usr/www/
你可以用 sed 做任何事情:
$ cat a
DocumentRoot /var/www
eee
$ sed -i 's#DocumentRoot.*#DocumentRoot hello#g' a
$ cat a
DocumentRoot hello
eee
我猜您想用/var/www/
其他东西替换,比如说/var/www2/
并显示修改后的路径。如果是这种情况,请
awk '$1~/^DocumentRoot/{print $2="/var/log/"; print;}' /etc/apache2/sites-available/default