sed 編輯命令對照表nginx
把 /etc/passwd 文件賦值到當前路徑下,進行操做bash
cp /etc/passwd ./ cat -n passwd
刪除 passwd 文件的第一行3d
sed -i '1d' passwd
刪除 1-3 行blog
sed -i '1,3d' passwd
刪除不能登陸的用戶,即 /sbin/nologin字符串
sed -i '/\/sbin\/nologin/d' passwd
刪除以mail開頭一直到以 ftp開頭的行string
sed -i '/^mail/,/^ftp/d' passwd
在/bin/bash 行後面追加一句話 This is user which can login to systemclass
sed -i '/\/bin\/bash/a This is user which can login to system' passwd
行前追加 在 root 和 nginx之間全部行以前追加 AAAAAAAAAAAAAAAAAAAA登錄
sed -i '/^root/,/^nginx/i AAAAAAAAAAAAAAAAAAAA' passwd
查找passwd文件中全部root的行,讀取 list 的內容追加到其後面變量
cat list
sed -i '/root/r list' passwd
在passwd文件中將匹配到的 /bin/bash 行寫入到 /tmp/user_login.txt 文件中ftp
sed '/\/bin\/bash/w /tmp/user_login.txt' passwd
修改:
查詢:
刪除:
增長:
修改:
其餘編輯命令:
什麼是反向引用
在file中搜尋以1開頭,而後跟兩個任意字符,以e結尾的字符串
sed "s/1..e/&r/g" file
和上面實現同樣的功能,使用\1表明搜尋到的字符串
sed "s/\(1..e\)/\1r/g" file
上面兩種方式實現了同樣的功能,分別使用&和\1引用前面匹配到的整個字符串 二者區別在於&只能表示匹配到的完整字符串,只能引用整個字符串:而\1可使用()對匹配到的字符串進行二次操做
例如:若是咱們僅想要替換匹配到的字符串的一部分,name必須使用\1這種方式,不能使用&
sed中引用變量時注意事項: