sed 用法express
sed的其餘用法以下:
1、刪除行首空格 sed 's/^[ ]*//g' filename sed 's/^ *//g' filename sed 's/^[[:space:]]*//g' filename 2、行後和行前添加新行 行後:sed 's/pattern/&\n/g' filename 行前:sed 's/pattern/\n&/g' filename &表明pattern 3、使用變量替換(使用雙引號) sed -e "s/$var1/$var2/g" filename 4、在第一行前插入文本 sed -i '1 i\插入字符串' filename 5、在最後一行插入 sed -i '$ a\插入字符串' filename 6、在匹配行前插入 sed -i '/pattern/ i "插入字符串"' filename 7、在匹配行後插入 sed -i '/pattern/ a "插入字符串"' filename 8、刪除文本中空行和空格組成的行以及#號註釋的行 grep -v ^# filename | sed /^[[:space:]]*$/d | sed /^$/d
# 刪除 第 2~5 行
cat /etc/passwd | sed '2,5d' # 刪除第 3 到最後一行 cat /etc/passwd | sed '3,$d' # 在第二行後(亦便是加在第三行)加上『drink tea』 cat /etc/passwd | sed '2a drink tea' # 第二行前加上『drink tea』 cat /etc/passwd | sed '2i drink tea' # 將第2-5行的內容取代成爲『No 2-5 number』 cat /etc/passwd | sed '2,5c No 2-5 number' # 僅列出 /etc/passwd 文件內的第 5-7 行 cat /etc/passwd | sed -n '5,7p'
高級用法google
[root@www ~]# /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:90:CC:A6:34:84 inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::290:ccff:fea6:3484/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 .....(如下省略).....
將 IP 前面的部分予以刪除spa
[root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' 192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
接下來則是刪除後續的部分,亦即: 192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0code
將 IP 後面的部分予以刪除blog
[root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' | sed 's/Bcast.*$//g' 192.168.1.100
# 利用 sed 將 regular_express.txt 內每一行結尾若爲 . 則換成 !
[root@www ~]# sed -i 's/\.$/\!/g' regular_express.txt [root@www ~]# cat regular_express.txt runoob! google! taobao! facebook!
# 利用 sed 直接在 regular_express.txt 最後一行加入 # This is a test:
[root@www ~]# sed -i '$a # This is a test' regular_express.txt [root@www ~]# cat regular_express.txt runoob! google! taobao! facebook! zhihu- weibo- # This is a test