亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

由一個實例淺析sed用法

發布時間:2020-07-06 10:35:05 來源:網絡 閱讀:827 作者:蘇幕遮618 欄目:建站服務器

首先,假設我們有一個文件,叫123.txt,#cat一下看到里面的內容是這樣的:

[root@func-lms-001 ~]# cat 123.txt 
james
curry
  durant
wade
yaoming
     messi
[root@func-lms-001 ~]#


如果我們想在james前面加上lebron,那么采用的sed語句就是:#sed -i '/^james/s/^/lebron /' 123.txt,如果要在curry后面加上 champion,那么采用的語句就是:#sed -i '/^curry/s/$/ champion!/' 123.txt


使用完上面兩句話之后,再#cat一下,看下效果:

[root@func-lms-001 ~]# cat 123.txt 
lebron james
curry champion!
  durant
wade
yaoming
     messi
[root@func-lms-001 ~]#


現在我們要把 durant前面加上FMVP這幾個字母,按照上面的語句找葫蘆畫瓢的話,應該是:#sed -i '/^durant/s/^/FMVP /' 123.txt但是很抱歉,這個語句是錯誤的!因為^是匹配開頭durant的意思,而我們再看一下durant那一行的開頭是空格。


那么就要用liunx的正則來匹配空格,于是這句話就變成了:#sed -i '/^\s\+durant/s/^/FMVP/' 123.txt ,^\s\+這個就是正則里匹配空格的意思 。


#cat一下:

[root@func-lms-001 ~]# cat 123.txt 
lebron james
curry champion!
FMVP   durant
wade
yaoming
     messi
[root@func-lms-001 ~]#


那么現在要在messi后面加上"GOAL !!!",就很簡單了。語句是:#sed -i '/^\s\+messi/s/$/ GOAL !!!/' 123.txt


以上我們把有/無空格情況下的首尾添加字符都練習了一遍,下面我們要看看如果要在中間添加怎么辦?


比如說,有一天苦逼的運維接到開發PL的郵件,說”由于安全基線要求,現在需要監聽內網端口“,具體的需求就是把所有含tomcat的模塊里的server.xml的文件里添加上內網IP。


原有的server.xml的節選如下:

    <Service name="LMS">
           <Connector port="8080" connectionTimeout="20000" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"  enableLookups="false" disableUploadTimeout="true" maxThreads="500" minSpareThreads="20" acceptCount="100"/>

            <Connector port="8088" connectionTimeout="20000" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"  enableLookups="false" disableUploadTimeout="true" maxThreads="500" minSpareThreads="20" acceptCount="100"/>
                   
           <Connector port="8099" protocol="AJP/1.3" redirectPort="8443" />
           <Engine defaultHost="localhost" name="Catalina">
                    <Realm className="org.apache.catalina.realm.LockOutRealm">
                                   <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" />
                    </Realm>

現在要把<Connector port="8099" protocol="AJP/1.3" redirectPort="8443" /> 這一句里面加上內網IP,改成這樣:

<Service name="LMS">
               <Connector port="8080" connectionTimeout="20000" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"  enableLookups="false" disableUploadTimeout="true" maxThreads="500" minSpareThreads="20" acceptCount="100"/>

                <Connector port="8088" connectionTimeout="20000" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"  enableLookups="false" disableUploadTimeout="true" maxThreads="500" minSpareThreads="20" acceptCount="100"/>
                       
               <Connector port="8099" address="1.2.3.4" protocol="AJP/1.3" redirectPort="8443" />
               <Engine defaultHost="localhost" name="Catalina">
                        <Realm className="org.apache.catalina.realm.LockOutRealm">
                                       <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" />
                        </Realm>

請問怎么做?

答案1:

sed -i '/<Connector port="8099"/s/port="8099"/port="8099" address="1.2.3.4"/g' server.xml

答案2:

sed -i 's@Connector port="8099"@& address="1.2.3.4"@' server.xml



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新疆| 澄江县| 长治县| 布尔津县| 阜城县| 江北区| 蕉岭县| 嘉祥县| 贵溪市| 唐山市| 桂阳县| 铜鼓县| 紫阳县| 上栗县| 方城县| 石棉县| 定州市| 论坛| 石楼县| 金湖县| 清远市| 和田市| 海宁市| 文成县| 邵武市| 新泰市| 北票市| 承德县| 叶城县| 若尔盖县| 平原县| 怀远县| 轮台县| 兴宁市| 萍乡市| 乌鲁木齐县| 壤塘县| 伊金霍洛旗| 屏东县| 五华县| 贺兰县|