Sed、Awk和grep 學習筆記(一)

一 Sed 命令 bash

命令格式: sed [-nefi] '[動做]' [filename]ide


參數:ip

-n 安靜模式,只顯示sed處理的那一行。ci

-e 多重編輯,能夠同時執行多個動做。sed -e '1d' -e '1a ttt'字符串

-f 將sed動做寫入腳本,經過過sed -f scriptfile執行sed操做。虛擬機

-i 直接編輯文本。it

動做:自動化

a 新增,接字符串能夠直接出如今下一行。class

c 替換,sed '1,5c kkkkkk' 1~5行使用kkkkk替換。變量

d 刪除,sed '1d' 刪除第一行。

i 插入,sed '1i kkkk'在第一行以前插入新的一行。

p 打印,sed 'p' filename 打印文本

s 替換,sed 's/abc/xxxx/g' 將abc使用xxxx替換,g是所有替換,使用數字能夠指定第幾回出現才替換,p是打印替換後的行

q 匹配到某行退出 3q 第三行推出。

r 匹配到的行讀取某文件 sed '1r qqq' abc

w 匹配到的行寫入文件 sed '/m/w qqq' abc 從abc中讀取帶m的行寫入qqq文件中(覆蓋)


實驗:自動化修改克隆後的虛擬機mac地址

  1. 相關文件有兩個 /etc/udev/rules.d/70-persistent-net.rules 和 /etc/sysconfig/network-scripts/ifcfg-eth0 修改70-persistent-net.rules中的網卡信息並獲取mac地址替換到ifcfg-eth0中。

#使用sed修改70-persistent-net.rules文件,修改正確的網卡信息
sed -i '/eth0/d' /etc/udev/rules.d/70-persistent-net.rules 
sed -i 's/eth1/eth0/g' /etc/udev/rules.d/70-persistent-net.rules
#獲取正確的MAC並賦值給mac
mac=$(sed -e 's/^.*ATTR{address}=="//g' -e 's/",.*//g' -e '/^$/d'  /etc/udev/rules.d/70-persistent-net.rules | grep -v "#")
#使用sed s動做替換MAC地址(注:sed中引用變量須要將單引號改成雙引號)
sed "s/HWADDR=.*/HWADDR=$mac/g" /etc/sysconfig/network-script/ifcfg-eth0
相關文章
相關標籤/搜索