替换awk的结果

时间:2013-09-19 08:56:26

标签: linux bash unix sed awk

基本上,我想做的是用其他东西替换从awk解析的结果。 我有以下awk命令:

awk '$1~/^DocumentRoot/{print $2}' /etc/apache2/sites-available/default

返回:

/var/www/

我想要做的是在文件中替换/var/www/(当然,它可以是任何内容,而不是/ var / www /)。我试图管道一个sed命令,但我无法弄清楚如何做到这一点......

任何人都可以提供帮助吗?

2 个答案:

答案 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