sed的用法小結

sed的用法小結

sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等
sed [OPTION]… ‘script’ [input-file] …

OPTION:

-n 不輸出模式空間中的內容至屏幕,僅顯示script處理后的結果
-e 多點編輯,eg: ~]# sed  -e  's@^#[[:space:]]*@@'   -e  '/^UUID/d'  /etc/fstab
-f 每行編輯一個命令
-r 支持使用擴展正則表表達式

地址定界:

(1)空地址:對全文進行處理
(2)單地址:
    #指定行
    /pattern/:被刺模式所匹配的到的每一行
(3)    地址范圍
    #,#:
    #,+#:
    #,/part1/
    /part1/,/part2/
    $:最后一行
(4)    步進:~
    1~2:所有奇數行
    2~2:所有偶數行

編輯命令:

d:刪除d后面通常不接任何東西
p:顯示模式空間的內容,通常 p 會與參數 sed -n 一起運行~
w: /PATH/TO/SOMEFILE:保存模式空間匹配到的行至指定的文件中
r  /PATH/FROM/SOMEFILE:讀取指定文件的內容至當前文件被模式匹配到的行后面;文件合并
s///:查找替換,其分隔符可自行指定,常用的有s@@@, s###等;
    g:全局替換;
    w /PATH/TO/SOMEFILE:將替換成功的結果保存至指定文件中;
    p:顯示替換成功的行;
a\test 追加,而這些字串會在新的一行出現(目前的下一行)
c\text取代,c后面可以接上字符串
i\text追加,而這些字串會在新的一行出現(目前的上一行)

練習:

刪除/etc/grub2.cfg文件中所有以空白字符開頭的行的行首的所有空白字符;
~]# sed  's@^[[:space:]]\+@@' /etc/grub2.cfg

刪除/etc/fstab文件中以#開頭的行的行首的#及#后面的所有空白字符
~]# sed  's@^#[[:space:]]*@@'  /etc/fstab

輸出一個絕對路徑給sed命令,取出其目錄,其行為類似于dirname
~]# echo "/var/log/messages/" | sed 's@[^/]\+/\?$@@'

將etc/fstab中的UUID替換成ABCD
~]# sed  's/UUID/ABCD/p' /etc/fstab

注 sed -i 可以直接修改原文件

[root@localhost ~]# vim test.txt
[root@localhost ~]# cat test.txt 
test
[root@localhost ~]# sed -i 'a\#This is a test' test.txt 
[root@localhost ~]# cat test.txt 
test
#This is a test

在要編輯一個超大的文本文件的時候,就可以不用vim打開再編輯了,直接用sed -i 就可以直接在指定行添加內容了!

原創文章,作者:N27_flypig,如若轉載,請注明出處:http://www.www58058.com/85283

(0)
N27_flypigN27_flypig
上一篇 2017-08-22 13:55
下一篇 2017-08-23 16:21

相關推薦

  • N22-第十周作業

    第十周    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情)    POST–>BootSequence(BOIS)–>BootLoader(MBR)–>Kernel(ramfs或者ramdisk)–&gt…

    Linux干貨 2016-11-07
  • N25_第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@aio ~]# who|cut -d" " -f1|uniq root 2、取出最后登錄到當前系統的用戶的相關信息。 [root@aio ~]# who| …

    Linux干貨 2016-12-19
  • M25開篇”如何學習Linux”

    首先有幸參加馬哥linux運維工程師培訓,在接下來的四個半月里如何學好linux,首先得了解什么是linux? 在開班前對linux的初步了解中知道linux是免費、開源、擁有廣泛而開放的linux社區的一款服務器操作系統,比較于windows和linux的用處都各有特點。 windows的用戶體驗眾人皆知,作為一款親民友善的系統,沒有學習成本,甚至學齡前童…

    2017-07-11
  • 制作自動化安裝的啟動U盤

    制作自動化安裝的啟動U盤 準備: CentOS 6.8 系統、CentOS-6.8-x86_64-bin-DVD1.iso光盤、U盤、centos-6-x86_64(kickstart文件) mkdir /mnt/myiso  創建目錄,創建安裝樹 查看光盤的掛載點 cp -r /media/CentOS_6.8_Final/isolinux/ &…

    2017-04-05
  • 2016-10-17作業

    1 生產環境發現一臺服務器系統時間產生偏差,造成服務異常,請幫忙校正。 答:hwclock -s 2 生產有一個數據同步腳本需要執行很長時間,怎樣做到無人值守,在管理工具退出的情況下,腳本依然能正常運行。 答:screen -S work  進去后開始做工作,暫時離開時可使用 ctrl+a,d 剝離當前會話。 3 Linux系統中命令共分為內建命令…

    Linux干貨 2016-10-18
  • 文本處理學習小結

    抽取文本的工具 文件內容:less和cat 文件截?。篽ead和tail 按列抽?。篶ut 按關鍵字抽取:grep 文件查看 復制標準輸入到標準輸出 文件查看命令:cat, tac,rev cat命令: cat [OPTION]… [FILE]… -E: 顯示行結束符$ -n: 對顯示出的每一行進行編號 -A:顯示所有控制符 -b:非…

    Linux干貨 2016-08-07
欧美性久久久久