學習筆記第二十六節課
阿新 • • 發佈:2018-04-26
作業
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 /不脫譯就會報錯。 不脫譯就更換特殊符號 就行了。
- 假設 刪除文檔中所有的英文字母,就可以取所有的字母 然後替換為空就行了。
- 實驗做出在所有行前面加上一串字符串。(.* ) 表示所有的行, &表示 括號裏的內容。
學習筆記第二十六節課