簡體   English   中英

替換awk的結果

[英]Replace result from awk

基本上,我想做的是將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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM