亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 4044 | 回復(fù): 13
打印 上一主題 下一主題

[文本處理] 問(wèn)個(gè)思路-關(guān)于nginx配置批量處理的 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2016-01-15 21:41 |只看該作者 |倒序?yàn)g覽
各位好!


小弟有個(gè)很大的nginx虛擬主機(jī)配置文件,格式類(lèi)似于
  1. server {
  2.         listen 80;
  3.         server_name www.q.com;
  4.         root /var/www/a;

  5. }
  6. server {
  7.         listen 80;
  8.         server_name www.b.com;
  9.         root /var/www/b;
  10.        
  11. }
復(fù)制代碼
想提取每個(gè)server區(qū)域的root后面的路徑,為每個(gè)server生成2個(gè)別名配置,類(lèi)似
location /var/www/a { alias /var/www/a/;}
location /a {alias /var/www/a/;}


向各位大大請(qǐng)教!

論壇徽章:
20
卯兔
日期:2015-01-26 22:05:142015亞冠之薩濟(jì)拖拉機(jī)
日期:2015-09-10 15:15:282015亞冠之阿爾希拉爾
日期:2015-09-25 17:37:53程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-03 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-09 06:20:00CU十四周年紀(jì)念徽章
日期:2015-12-17 09:07:15程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-25 06:20:34程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-25 06:20:34程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-25 06:20:342015亞冠之廣州富力
日期:2015-08-27 19:29:56每日論壇發(fā)貼之星
日期:2015-08-26 06:20:002015亞冠之阿爾希拉爾
日期:2015-05-18 17:26:27
2 [報(bào)告]
發(fā)表于 2016-01-15 23:09 |只看該作者
  1. awk 'function pp(a,b){print "location "a" { alias "b"/;}";}/server *{/{f=1}f&&/root/{s=$2;sub(/;$/,"",s)}/}/{pp(s,s);y=gensub(/.*(\/[^\/]+)$/,"\\1","1",s);pp(y,s)}' file
  2. location /var/www/a { alias /var/www/a/;}
  3. location /a { alias /var/www/a/;}
  4. location /var/www/b { alias /var/www/b/;}
  5. location /b { alias /var/www/b/;}
復(fù)制代碼
這樣?

論壇徽章:
20
卯兔
日期:2015-01-26 22:05:142015亞冠之薩濟(jì)拖拉機(jī)
日期:2015-09-10 15:15:282015亞冠之阿爾希拉爾
日期:2015-09-25 17:37:53程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-03 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-09 06:20:00CU十四周年紀(jì)念徽章
日期:2015-12-17 09:07:15程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-25 06:20:34程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-25 06:20:34程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-25 06:20:342015亞冠之廣州富力
日期:2015-08-27 19:29:56每日論壇發(fā)貼之星
日期:2015-08-26 06:20:002015亞冠之阿爾希拉爾
日期:2015-05-18 17:26:27
3 [報(bào)告]
發(fā)表于 2016-01-15 23:25 |只看該作者
  1. sed -nr '/server *\{/,/}/{/root/{s#.*root *(.*);#location \1 \{ alias \1/\;\}#p;s#(location )(/[^/]+)*(/[^/]+ .*)#\1\3#p}}' file
  2. location /var/www/a { alias /var/www/a/;}
  3. location /a { alias /var/www/a/;}
  4. location /var/www/b { alias /var/www/b/;}
  5. location /b { alias /var/www/b/;}
復(fù)制代碼

論壇徽章:
13
雙魚(yú)座
日期:2013-10-23 09:30:05數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-04-20 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-03-09 06:20:002015亞冠之塔什干火車(chē)頭
日期:2015-11-02 10:07:452015亞冠之德黑蘭石油
日期:2015-08-30 10:07:07數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2015-08-28 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龍
日期:2014-12-03 14:45:52酉雞
日期:2014-07-23 09:46:23亥豬
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
4 [報(bào)告]
發(fā)表于 2016-01-16 09:57 |只看該作者
  1. sed '/server {/,/}/{/root/{s#root \(.*/\([a-z]*\)\)#&\nlocation \1{\nalias \1;\n}\nlocation \2\n{\nalias \1;\n}#}}' urfile
復(fù)制代碼

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2016-01-16 13:03 |只看該作者
需求是這樣
  1. server {
  2.         listen 80;
  3.         server_name www.q.com;
  4.         root /var/www/a;
  5.         location /var/www/a {alias /var/www/a;}
  6.         location /a {alias /var/www/a;}

  7. }
  8. server {
  9.         listen 80;
  10.         server_name www.b.com;
  11.         root /var/www/b;
  12.         location /var/www/b {alias /var/www/b;}
  13.         location /b {alias /var/www/b;}
  14.         
  15. }
復(fù)制代碼
回復(fù) 2# songyc_2015


   

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2016-01-16 13:05 |只看該作者
本帖最后由 lbt5210 于 2016-01-16 13:35 編輯

對(duì),就是要實(shí)現(xiàn)哥們你這種效果

但在第二個(gè)別名這里會(huì)匹配不到/
也就是 location a {alias /var/www/a;}  這里會(huì)匹配不到/
回復(fù) 4# bikong0411


   

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2016-01-16 14:27 |只看該作者
本帖最后由 lbt5210 于 2016-01-16 14:28 編輯

按照您的操作我稍微的修改了下
sed -e '/server {/,/}/{/root/{s#root \(.*/\([a-z]*\)\)#&\nlocation \1 { alias \1; }\nlocation \/\2 { alias \1; }#}}'

但這個(gè)location不能直接添加到root這個(gè)一行下面  能否添加到指定的行下面呢?例如server_name這一行下面呢?

回復(fù) 4# bikong0411


   

論壇徽章:
12
IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-11-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-19 06:20:0015-16賽季CBA聯(lián)賽之江蘇
日期:2016-01-17 15:31:3915-16賽季CBA聯(lián)賽之上海
日期:2016-01-16 15:44:3015-16賽季CBA聯(lián)賽之浙江
日期:2016-01-15 20:38:1815-16賽季CBA聯(lián)賽之北京
日期:2016-01-09 14:30:15CU十四周年紀(jì)念徽章
日期:2016-01-07 12:31:5115-16賽季CBA聯(lián)賽之四川
日期:2016-01-01 11:49:1515-16賽季CBA聯(lián)賽之深圳
日期:2015-12-24 14:23:4115-16賽季CBA聯(lián)賽之山西
日期:2015-12-15 16:22:31技術(shù)圖書(shū)徽章
日期:2015-12-10 17:41:0015-16賽季CBA聯(lián)賽之北控
日期:2016-02-03 10:03:24
8 [報(bào)告]
發(fā)表于 2016-01-16 15:39 |只看該作者
awk -F "[ ;]+" '/root/{match($3,"(/[^/]+)$",a);$0=$0"\n        location "$3" {alias "$3";}\n        location "a[1]" {alias "$3";}"}1' file
server {
        listen 80;
        server_name www.q.com;
        root /var/www/a;
        location /var/www/a {alias /var/www/a;}
        location /a {alias /var/www/a;}

}
server {
        listen 80;
        server_name www.b.com;
        root /var/www/b;
        location /var/www/b {alias /var/www/b;}
        location /b {alias /var/www/b;}
        
}

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2016-01-16 19:12 |只看該作者
   可否插入指定的行后面呢?例如server_name下面呢?

回復(fù) 8# sync_1521


   

論壇徽章:
12
IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-11-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-19 06:20:0015-16賽季CBA聯(lián)賽之江蘇
日期:2016-01-17 15:31:3915-16賽季CBA聯(lián)賽之上海
日期:2016-01-16 15:44:3015-16賽季CBA聯(lián)賽之浙江
日期:2016-01-15 20:38:1815-16賽季CBA聯(lián)賽之北京
日期:2016-01-09 14:30:15CU十四周年紀(jì)念徽章
日期:2016-01-07 12:31:5115-16賽季CBA聯(lián)賽之四川
日期:2016-01-01 11:49:1515-16賽季CBA聯(lián)賽之深圳
日期:2015-12-24 14:23:4115-16賽季CBA聯(lián)賽之山西
日期:2015-12-15 16:22:31技術(shù)圖書(shū)徽章
日期:2015-12-10 17:41:0015-16賽季CBA聯(lián)賽之北控
日期:2016-02-03 10:03:24
10 [報(bào)告]
發(fā)表于 2016-01-16 19:34 |只看該作者
回復(fù) 9# lbt5210


awk -F "[ ;]+" '/root/{match($3,"(/[^/]+)$",a);$0="        location "$3" {alias "$3";}\n        location "a[1]" {alias "$3";}\n"$0}1' file
server {
        listen 80;
        server_name www.q.com;
        location /var/www/a {alias /var/www/a;}
        location /a {alias /var/www/a;}
        root /var/www/a;

}
server {
        listen 80;
        server_name www.b.com;
        location /var/www/b {alias /var/www/b;}
        location /b {alias /var/www/b;}
        root /var/www/b;
        
}

這樣么?
另外發(fā)個(gè)帖別老讓別人猜來(lái)猜去。。直接把結(jié)果貼出來(lái)稍加文字描述效果好的多
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP