基本上,我想做的是用其他东西替换从awk解析的结果。 我有以下awk命令:
awk '$1~/^DocumentRoot/{print $2}' /etc/apache2/sites-available/default
返回:
/var/www/
我想要做的是在文件中替换/var/www/
(当然,它可以是任何内容,而不是/ var / www /)。我试图管道一个sed命令,但我无法弄清楚如何做到这一点......
任何人都可以提供帮助吗?
答案 0 :(得分:2)
将结果保存在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
答案 1 :(得分:2)
我想你想用其他东西替换/var/www/
,让我们说/var/www2/
并显示修改后的路径。
如果是这种情况,请选择
awk '$1~/^DocumentRoot/{print $2="/var/log/"; print;}' /etc/apache2/sites-available/default