六週第二次課 9.4/9.5 sed

9.4/9.5 sed


sed 後面帶p 匹配指定的行

六週第二次課 9.4/9.5 sed

  • sed命令比grep更強大,除了擁有查找功能外,還擁有替換功能
  • sed 可以實現grep的大部分功能 ,但是不顯示顏色

    1. # sed -n '/root/'p test.txt 或# sed -n '/1,5/'p test.txt

  • 單引號內可以說字符串也可以是數字,如果是數字的話則表示第幾行,或者行數範圍;
  • sed -n 是打印符合條件的行,p是print打印的意思
    六週第二次課 9.4/9.5 sed
    六週第二次課 9.4/9.5 sed
    六週第二次課 9.4/9.5 sed

    2. # sed -e '1'p -e '/bus/'p -n test.txt

  • 打印第一行和帶有bus字符串的行
    六週第二次課 9.4/9.5 sed
    六週第二次課 9.4/9.5 sed

    3.# sed -n '/bus/'Ip test.txt

  • 可以匹配大小寫,I不區分大小寫
    六週第二次課 9.4/9.5 sed

sed 後面帶d 刪除指定的行

六週第二次課 9.4/9.5 sed

  • 例子 在日誌非常大的情況下,如何刪除工作日誌 (刪除前5個月的日誌)
  • 用grep -n 確定多少行,匹配日期然後查看多少行

    sed '1,25'd test.txt

  • 列出指定範圍內的行數 sed 'n'd僅僅是把行數在屏幕中顯示出來,並沒有刪除
  • 同樣這裏的n 可以說數字 也可以說字符串 ‘/abc/’

六週第二次課 9.4/9.5 sed
六週第二次課 9.4/9.5 sed

sed -i '1,25'd test.txt

  • 刪除指定範圍內的行數

六週第二次課 9.4/9.5 sed

sed '1,10s/root/toor/g' test.txt

  • 把test文件的1到10行中的root替換成toor
    六週第二次課 9.4/9.5 sed

    sed -r '1,10s/ro+/r/g' test.txt ###sed -r 脫意

    六週第二次課 9.4/9.5 sed

  • sed -e 進行多次命令,和;效果一行
  • 正則中 | 表示或者,並且要sed兩次表示

    sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/' 1.txt

  • 以:爲分割符,將第一段和最後一段互相替換,([^:]+)表示非:前面的內容爲1,(.*)表示一直到最後一個:前面的內容爲2,([^:]+)表示非:後面面的內容爲3
    六週第二次課 9.4/9.5 sed

    head test.txt |sed 's/[a-zA-Z]//g'

  • 刪除所有的英文字母 其中“//”代表爲空 (把字母替換爲空)
    六週第二次課 9.4/9.5 sed

    head test.txt |sed -r 's/(.*)/aaa:&/'

  • 在所有的行前面加上指定的字符串
  • (.*)表示一整行 &表示 / 前面內容的意思
    六週第二次課 9.4/9.5 sed
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章