sed工具

grep工具的功能其實還不夠強大,grep實現的只是查找功能,而它卻不能實現把查找的內容替換掉。以前用vim的時候,可以查找也可以替換,但是隻侷限於在文本內部來操作,而不能輸出到屏幕上,sed工具就能實現把替換的文本輸出到屏幕上的功能了。

常用選項:
-n:把經過sed命令處理的行輸出到屏幕
-e:允許對輸入數據應用多條sed命令編輯
-i:用sed的修改結果直接修改讀取數據的文件,而不是由屏幕輸出
-a:追加,在當前行後添加一行或多行
-c:行替換,用c後面的字符串替換原數據行
-i:插入,在當期行前插入一行或多行
-d:刪除,刪除指定的行
-p:打印,輸入指定的行
-s:字串替換,用一個字符串替換另外一個字符串。格式爲“行範圍s/舊字串/新字串/g”

1、打印某行
sed -n ‘n’ p filename ,單引號內的n是一個數字,表示第幾行:
sed工具
要想把所有行都打印出來可以使用 :
sed -n’1,$’p filename
sed工具
也可以指定一個區間:
sed -n ‘1,5’p1234.txt
sed工具
2、打印包含某個字符串的行:
sed -n ‘/root/’p passwd
sed工具

也可以使用:^ $ . *

3、-e 可以實現多個行爲
sed -e ‘1’p -e ‘/111/’p -n passwd 或
sed -e ‘1p;/111/p’ -n passwd
sed工具
4、刪除某行或者多行
sed ‘1’d passwd

sed ‘1,3’d passwd
(sed工具https://s1.51cto.com/images/blog/201801/30/6b275d19dd7a83235e0f8752e3ccaa2b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
5、替換字符或字符串
sed ‘1,2s/ot/to/g’ passwd
sed工具

s’ 就是替換的命令, ‘g’ 爲本行中全局替換,如果不加 ‘g’ 只換該行中出現的第一個,除了可以使用 ‘/’ 作爲分隔符外,還可以使用其他特殊字符例如 ‘#’ 或者 ‘@’ 都沒有問題,如:
sed ‘1,2s#ot#to#g’ passwd

6、調換兩個字符串的位置

sed工具
在某一行前或者後增加指定內容
sed ‘s/^.*$/123&/’ passwd
sed工具
7、直接修改文件的內容
sed -i ‘s/ot/to/g’ passwd
sed工具
由於這個命令可以直接把文件修改,所以在修改前最好先複製一下文件以免改錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章