<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦>學習電腦>操作系統>Linux教程>

        Linux中的sed命令的詳細解釋

        時間: 佳洲1085 分享

          linxu下的sed命令是一個很好的文件處理工具。下面由學習啦小編為大家整理了linux的sed命令的詳細解釋的相關知識,希望對大家有幫助!

          一、Linux中的sed命令的詳細解釋

          sed是一個很好的文件處理工具,本身是一個管道命令,主要是以行為單位進行處理,可以將數據行進行替換、刪除、新增、選取等特定工作,下面先了解一下sed的用法

          sed命令行格式為:

          sed [-nefri] ‘command’ 輸入文本

          常用選項:

          -n∶使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN的資料一般都會被列出到螢幕上。但如果加上 -n 參數后,則只有經過sed 特殊處理的那一行(或者動作)才會被列出來。

          -e∶直接在指令列模式上進行 sed 的動作編輯;

          -f∶直接將 sed 的動作寫在一個檔案內, -f filename 則可以執行 filename 內的sed 動作;

          -r∶sed 的動作支援的是延伸型正規表示法的語法。(預設是基礎正規表示法語法)

          -i∶直接修改讀取的檔案內容,而不是由螢幕輸出。

          常用命令:

          a ∶新增, a 的后面可以接字串,而這些字串會在新的一行出現(目前的下一行)~

          c ∶取代, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行!

          d ∶刪除,因為是刪除啊,所以 d 后面通常不接任何咚咚;

          i ∶插入, i 的后面可以接字串,而這些字串會在新的一行出現(目前的上一行);

          p ∶列印,亦即將某個選擇的資料印出。通常 p 會與參數 sed -n 一起運作~

          s ∶取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g 就是啦!

          二、Linux中的sed命令詳解實例

          在testfile文件的第四行后添加一行,并將結果輸出到標準輸出,在命令行提示符下輸入如下命令:

          sed -e 4a\newLine testfile

          首先查看testfile中的內容如下:

          $ cat testfile #查看testfile 中的內容

          HELLO LINUX!

          Linux is a free unix-type opterating system.

          This is a linux testfile!

          Linux test

          使用sed命令后,輸出結果如下:

          $ sed -e 4a\newline testfile #使用sed 在第四行后添加新字符串

          HELLO LINUX! #testfile文件原有的內容

          Linux is a free unix-type opterating system.

          This is a linux testfile!

          Linux test

          newline

          以行為單位的新增/刪除

          將 /etc/passwd 的內容列出并且列印行號,同時,請將第 2~5 行刪除!

          [root@www ~]# nl /etc/passwd | sed '2,5d'

          1 root:x:0:0:root:/root:/bin/bash

          6 sync:x:5:0:sync:/sbin:/bin/sync

          7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

          .....(后面省略).....

          sed 的動作為 '2,5d' ,那個 d 就是刪除!因為 2-5 行給他刪除了,所以顯示的數據就沒有 2-5 行羅~ 另外,注意一下,原本應該是要下達 sed -e 才對,沒有 -e 也行啦!同時也要注意的是, sed 后面接的動作,請務必以 '' 兩個單引號括住喔!

          只要刪除第 2 行

          nl /etc/passwd | sed '2d'

          要刪除第 3 到最后一行

          nl /etc/passwd | sed '3,$d'

          在第二行后(亦即是加在第三行)加上『drink tea?』字樣!

          [root@www ~]# nl /etc/passwd | sed '2a drink tea'

          1 root:x:0:0:root:/root:/bin/bash

          2 bin:x:1:1:bin:/bin:/sbin/nologin

          drink tea

          3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

          .....(后面省略).....

          那如果是要在第二行前

          nl /etc/passwd | sed '2i drink tea'

          如果是要增加兩行以上,在第二行后面加入兩行字,例如『Drink tea or .....』與『drink beer?』

          [root@www ~]# nl /etc/passwd | sed '2a Drink tea or ......\

          > drink beer ?'

          1 root:x:0:0:root:/root:/bin/bash

          2 bin:x:1:1:bin:/bin:/sbin/nologin

          Drink tea or ......

          drink beer ?

          3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

          .....(后面省略).....

          每一行之間都必須要以反斜杠『 \ 』來進行新行的添加喔!所以,上面的例子中,我們可以發現在第一行的最后面就有 \ 存在。

          以行為單位的替換與顯示

          將第2-5行的內容取代成為『No 2-5 number』呢?

          [root@www ~]# nl /etc/passwd | sed '2,5c No 2-5 number'

          1 root:x:0:0:root:/root:/bin/bash

          No 2-5 number

          6 sync:x:5:0:sync:/sbin:/bin/sync

          .....(后面省略).....

          透過這個方法我們就能夠將數據整行取代了!

          僅列出 /etc/passwd 文件內的第 5-7 行

          [root@www ~]# nl /etc/passwd | sed -n '5,7p'

          5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

          6 sync:x:5:0:sync:/sbin:/bin/sync

          7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

          </p><p>

          可以透過這個 sed 的以行為單位的顯示功能, 就能夠將某一個文件內的某些行號選擇出來顯示。

          </p>

          <h3>數據的搜尋并顯示</h3>

          <p>搜索 /etc/passwd有root關鍵字的行</p>

          <pre>

          nl /etc/passwd | sed '/root/p'

          1 root:x:0:0:root:/root:/bin/bash

          1 root:x:0:0:root:/root:/bin/bash

          2 daemon:x:1:1:daemon:/usr/sbin:/bin/sh

          3 bin:x:2:2:bin:/bin:/bin/sh

          4 sys:x:3:3:sys:/dev:/bin/sh

          5 sync:x:4:65534:sync:/bin:/bin/sync

          ....下面忽略

          如果root找到,除了輸出所有行,還會輸出匹配行。

          使用-n的時候將只打印包含模板的行。

          nl /etc/passwd | sed -n '/root/p'

          1 root:x:0:0:root:/root:/bin/bash

          數據的搜尋并刪除

          刪除/etc/passwd所有包含root的行,其他行輸出

          nl /etc/passwd | sed '/root/d'

          2 daemon:x:1:1:daemon:/usr/sbin:/bin/sh

          3 bin:x:2:2:bin:/bin:/bin/sh

          ....下面忽略

          #第一行的匹配root已經刪除了

          數據的搜尋并執行命令

          搜索/etc/passwd,找到root對應的行,執行后面花括號中的一組命令,每個命令之間用分號分隔,這里把bash替換為blueshell,再輸出這行:

          nl /etc/passwd | sed -n '/bash/{s/bash/blueshell/;p;q}'

          1 root:x:0:0:root:/root:/bin/blueshell

          最后的q是退出。

          數據的搜尋并替換

          除了整行的處理模式之外, sed 還可以用行為單位進行部分數據的搜尋并取代。基本上 sed 的搜尋與替代的與 vi 相當的類似!他有點像這樣:

          sed 's/要被取代的字串/新的字串/g'

          先觀察原始信息,利用 /sbin/ifconfig 查詢 IP

          [root@www ~]# /sbin/ifconfig eth0

          eth0 Link encap:Ethernet HWaddr 00:90:CC:A6:34:84

          inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

          inet6 addr: fe80::290:ccff:fea6:3484/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

          .....(以下省略).....

          本機的ip是192.168.1.100。

          將 IP 前面的部分予以刪除

          [root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g'

          192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

          接下來則是刪除后續的部分,亦即: 192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

          將 IP 后面的部分予以刪除

          [root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' | sed 's/Bcast.*$//g'

          192.168.1.100

          多點編輯

          一條sed命令,刪除/etc/passwd第三行到末尾的數據,并把bash替換為blueshell

          nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'

          1 root:x:0:0:root:/root:/bin/blueshell

          2 daemon:x:1:1:daemon:/usr/sbin:/bin/sh

          -e表示多點編輯,第一個編輯命令刪除/etc/passwd第三行到末尾的數據,第二條命令搜索bash替換為blueshell。

          直接修改文件內容(危險動作)

          sed 可以直接修改文件的內容,不必使用管道命令或數據流重導向! 不過,由於這個動作會直接修改到原始的文件,所以請你千萬不要隨便拿系統配置來測試! 我們還是使用下載的 regular_express.txt 文件來測試看看吧!

          利用 sed 將 regular_express.txt 內每一行結尾若為 . 則換成 !

          [root@www ~]# sed -i 's/\.$/\!/g' regular_express.txt

          利用 sed 直接在 regular_express.txt 最后一行加入『# This is a test』

          [root@www ~]# sed -i '$a # This is a test' regular_express.txt

          由於 $ 代表的是最后一行,而 a 的動作是新增,因此該文件最后新增『# This is a test』!

          sed 的『 -i 』選項可以直接修改文件內容,這功能非常有幫助!舉例來說,如果你有一個 100 萬行的文件,你要在第 100 行加某些文字,此時使用 vim 可能會瘋掉!因為文件太大了!那怎辦?就利用 sed 啊!透過 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修訂!

        Linux中的sed命令的詳細解釋

        linxu下的sed命令是一個很好的文件處理工具。下面由學習啦小編為大家整理了linux的sed命令的詳細解釋的相關知識,希望對大家有幫助! 一、Linux中的sed命令的詳細解釋 sed是一個很好的文件處理工具,本身是一個管道命令,主要是以行為單
        推薦度:
        點擊下載文檔文檔為doc格式

        精選文章

        • Linux中的scp命令的詳細解釋
          Linux中的scp命令的詳細解釋

          linxu下的scp命令是基于ssh登錄進行安全的遠程文件拷貝命令。下面由學習啦小編為大家整理了linux的scp命令的詳細解釋的相關知識,希望對大家有幫助! 一、

        • linux中的sar命令的詳細解釋
          linux中的sar命令的詳細解釋

          linxu下的sar是目前為止最全面的系統性能分析工具之一。下面由學習啦小編為大家整理了linux的sar命令的詳細解釋的相關知識,希望對大家有幫助! 一、lin

        • linux中的rpm命令的詳細解釋
          linux中的rpm命令的詳細解釋

          linxu下的rpm命令其實是一個軟件包管理程序。下面由學習啦小編為大家整理了linux的rpm命令的詳細解釋的相關知識,希望對大家有幫助! 一、linux中的rm命令的

        • linux中的rm命令的詳細解釋
          linux中的rm命令的詳細解釋

          linxu下的rm命令是一個刪除命令,用來刪除文件或者目錄。下面由學習啦小編為大家整理了linux的rm命令的詳細解釋的相關知識,希望對大家有幫助! 一、li

        3635756 主站蜘蛛池模板: 日韩剧情片电影网站| √天堂中文在线最新版| 99视频30精品视频在线观看| 色偷偷中文在线天堂中文| 日本东京热不卡一区二区| 午夜男女爽爽影院在线| 日韩精品一区二区亚洲av| 国产在线线精品宅男网址| 亚洲中文字幕精品一区二区三区| 国产午夜91福利一区二区| 国产jlzzjlzz视频免费看| 依依成人精品视频在线观看| 精品人妻久久一日二个| 亚洲中文字幕一区二区| 亚洲精品自拍视频在线看| 亚洲欧美日韩国产精品专区| 久久精品免费观看国产| 亚洲国产成人无码电影| 久久精品极品盛宴观看| 国产精品自线在线播放| 亚洲AV无码久久久久网站蜜桃| 97精品国产久热在线观看| 精品一区二区中文字幕| 国产激情电影综合在线看| 妖精视频亚州无吗高清版| 东京热久久综合久久88| 亚洲大尺度一区二区av| 久久国产精品免费一区| 久久这里只精品国产2| 噜噜噜噜私人影院| 午夜亚洲AV日韩AV无码大全| 日韩成人无码影院| 四虎成人精品在永久免费| 国产av综合一区二区三区| 国产嫩草精品网亚洲av| 久久久精品国产精品久久| 国产精品毛片一区视频播| 无码精品人妻一区二区三李一桐| 国产亚洲人成网站在线观看| 狠狠亚洲丁香综合久久| 无码专区—va亚洲v专区vr|