9.4/9.5 sed
sed 後面帶p 匹配指定的行
- sed命令比grep更強大,除了擁有查找功能外,還擁有替換功能
- sed 可以實現grep的大部分功能 ,但是不顯示顏色
1. # sed -n '/root/'p test.txt 或# sed -n '/1,5/'p test.txt
- 單引號內可以說字符串也可以是數字,如果是數字的話則表示第幾行,或者行數範圍;
- sed -n 是打印符合條件的行,p是print打印的意思
2. # sed -e '1'p -e '/bus/'p -n test.txt
- 打印第一行和帶有bus字符串的行
3.# sed -n '/bus/'Ip test.txt
- 可以匹配大小寫,I不區分大小寫
sed 後面帶d 刪除指定的行
- 例子 在日誌非常大的情況下,如何刪除工作日誌 (刪除前5個月的日誌)
- 用grep -n 確定多少行,匹配日期然後查看多少行
sed '1,25'd test.txt
- 列出指定範圍內的行數 sed 'n'd僅僅是把行數在屏幕中顯示出來,並沒有刪除
- 同樣這裏的n 可以說數字 也可以說字符串 ‘/abc/’
sed -i '1,25'd test.txt
- 刪除指定範圍內的行數
sed '1,10s/root/toor/g' test.txt
- 把test文件的1到10行中的root替換成toor
sed -r '1,10s/ro+/r/g' test.txt ###sed -r 脫意
- sed -e 進行多次命令,和;效果一行
- 正則中 | 表示或者,並且要sed兩次表示
sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/' 1.txt
- 以:爲分割符,將第一段和最後一段互相替換,([^:]+)表示非:前面的內容爲1,(.*)表示一直到最後一個:前面的內容爲2,([^:]+)表示非:後面面的內容爲3
head test.txt |sed 's/[a-zA-Z]//g'
- 刪除所有的英文字母 其中“//”代表爲空 (把字母替換爲空)
head test.txt |sed -r 's/(.*)/aaa:&/'
- 在所有的行前面加上指定的字符串
- (.*)表示一整行 &表示 / 前面內容的意思