sed 淺談

sed是一個很好的文件處理工具,本身是一個管道命令,主要是以行爲單位進行處理,可以將數據行進行替換、刪除、新增、選取等特定工作,下面先了解一下sed的用法
sed命令行格式爲:
sed [-nefri] ‘function’ 輸入文本
常用的參數(nefer)
-n:安靜模式 即只輸出匹配到的內容
-f; 直接將sed的動作寫到檔案內
-e:直接在指令模式上進行 sed的動作和編輯
-r:支持正則表達語法
-i:直接修改讀取的文件內容
function
a:新增
c:取代
d:刪除
i:插入
p:列印
s:取代
Example
1 刪除
這裏寫圖片描述
1.1 nl /etc/passwd | sed ‘2,5d’
sed 的動作爲‘2,5d’,那個d就是刪除 因此2-5行就刪除了
1.2 只刪除第二行
nl /etc/passwd | sed ‘2d’
這裏寫圖片描述
2d表示刪除第二行
1.3 從指定行刪除到末尾
nl /etc/passwd | sed ‘4,$d’
這裏寫圖片描述
‘4,$d’表示從第二行刪除到行尾
2 添加
2.1 nl /etc/passwd | sed ‘2a I like linux’
這裏寫圖片描述
2.2 在指定行數的上一行添加內容
nl /etc/passwd | sed ‘4i I like linux’
這裏寫圖片描述
a 是在指定行的下一行 i是在指定行的上一行
2.3 添加多行內容
nl /etc/passwd | sed ‘4a i like linux \

I like linux too’
這裏寫圖片描述
每一行都必須加上反斜槓 表示輸入未結束
3 以行爲單位的輸出與替換
3.1 將指定行的內容輸出
nl /etc/passwd | sed -e ‘2,5p’
這裏寫圖片描述
這裏寫圖片描述
3.2 取代指定行內容
nl /etc/passwd | sed ‘2,5c NEW COPY’
這裏寫圖片描述

c用指定的內容替換原內容

4 搜索即顯示
4.1 搜索指定內容
nl /etc/passwd | sed ‘/root/p’
這裏寫圖片描述

4.2 搜索並刪除
nl /etc/passwd | sed ‘/root/d’
這裏寫圖片描述
4.3 搜索並替換
nl /etc/passwd | sed ‘/root/{s/bash/GOOD/;p}’
這裏寫圖片描述
這裏寫圖片描述
將ip前面的部分予以刪除
/sbin/ifconfig eth0 | grep ‘inet addr’ | sed ‘s/^.*addr://g’
這裏寫圖片描述
4.4 多點編輯
一個sed 刪除/etc/passwd 第三行到末尾 並把bash替換爲 ScySky
nl /etc/passwd | sed -e ‘3,$d’ -e ‘s/bash/ScySky/’
這裏寫圖片描述

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