1. 程式人生 > >學習筆記第二十六節課

學習筆記第二十六節課

作業

sed

技術分享圖片

  • sed也能實現grep的功能,但是有些麻煩,而且沒有顏色顯示。
  • sed的強項在於替換,替換一些指定的字符。
  • 比如grep中的 . * |都可以在sed中實現,但是要加上/ / 和p (這裏只加p的話,匹配的含有root的 會連續打印兩次,不加關鍵詞,會將所有文件內容連續打印兩次。)
  • 技術分享圖片
  • 只打印關鍵詞的行 就要加上-n
  • 技術分享圖片
  • 同樣支持 . * 但是看起來麻煩 沒有顏色顯示。
  • 技術分享圖片
  • +也可以用 和grep一樣 也需要脫譯 這裏是加-r
  • 技術分享圖片
  • | 和{}也一樣支持 記得加-r
  • 技術分享圖片
  • sed 可以打印指定行數,打印行數不用加/ 可以直接用單引號加數字,也可以打印指定多行加逗號 也可以指定 行數 到行末打印出來。$表示行末。
  • 技術分享圖片
  • -e 是表示在同一個表達式裏 做多個操作,不僅指定打印第幾行 還匹配字符串。 類似於 平常命令行下 ;的功能 一個命令行 執行兩個命令。
  • 技術分享圖片
  • 如果兩個表達式 所要表達的東西是一致的 就會打印出來兩行。
  • 技術分享圖片
  • 在sed 中 要顯示大小寫 就是要加大寫的字母I 在p的前面。
  • 技術分享圖片
  • 如果想在一個很大的文件中刪除某些行 用vim去dd刪除是很費時間和內存的,sed 就可以刪除。-i 和後面加d 只加d 是顯示出你剩下的行。但是文件中是沒有刪除的。
  • 技術分享圖片
  • 技術分享圖片
  • 還可以指定 單詞。
  • 技術分享圖片
  • sed 好用的地方在於可以替換。 sed ‘10,30s/root/toor/g‘ test.txt.bak
  • s是替換的關鍵詞,g是全局替換。
  • 技術分享圖片
  • 正則中的特殊符號也可以適用於替換, sed ‘10,30s/ro+/r/g‘ test.txt 比如這個,意思就是 替換 ro+ 為r +代表的是+前面的重復1-n次, 這個文件中 能重復1-n次的只有root 所以替換結果就是 rt 記得加-r 脫譯。
  • 技術分享圖片
  • 也可以進行 前後內容替換 。s表示替換, [^:]+表示 :前面的多個字符。 ()表示一個整體 一部分。
  • 技術分享圖片
  • 這裏也會遇到和vim一樣的情況 比如把root 更換為123 /不脫譯就會報錯。 不脫譯就更換特殊符號 就行了。
  • 技術分享圖片
  • 假設 刪除文檔中所有的英文字母,就可以取所有的字母 然後替換為空就行了。
  • 技術分享圖片
  • 實驗做出在所有行前面加上一串字符串。(.* ) 表示所有的行, &表示 括號裏的內容。
  • 技術分享圖片

學習筆記第二十六節課