方法一:通過cut方法過濾
[root@baiguin ~]# ifconfig eth0|grep "inet addr:"|cut -d ":" -f2|cut -d " " -f1
192.168.26.132
===============================================================
方法二:通過awk方法過濾
1)[root@baiguin ~]# ifconfig eth0 |grep "inet addr:" |awk -F: '{PRint $2 }'|awk '{print $1}'
192.168.26.132
2)[root@baiguin ~]# ifconfig eth0 |grep "inet addr:" |awk -F "[ :]" '{print $13}'
192.168.26.132
3)[root@baiguin ~]# ifconfig eth0 |grep "inet addr:" |awk -F "[ :]+" '{print $4}'
192.168.26.132
4)[root@baiguin ~]# ifconfig eth0 |awk -F '[ :]+' '{if(NR==2) print $4}'
192.168.26.132192.168.26.132
[root@baiguin ~]# ifconfig eth0|grep "inet addr:"|awk -F "[ :]*" '{print $4}'
192.168.26.132
注:此中的“+”和“*”號即正則表達式用法
===========================================================
方法三:通過sed方法過濾
1)[root@baiguin ~]# ifconfig eth0|sed -n "s/^.*addr:/(.*/) Bcast.*$//1/gp"
192.168.26.132
注:sed小括號()分組功能
Sed ‘s/
/
/g’
部分可以用正則表達式,
的部分不能用正則表達式。
()是分組(group),再
部分使用()括起來的內容,再
的位置可以使用/1調用前面括號內的內容。
如果有多個的括號,那么依次是/2,/3調用 第二個第三個括號,以此類推。
eg:
[root@baiguin ~]# echo "aaa bbb" >a.txt
[root@baiguin ~]# cat a.txt
aaa bbb
[root@baiguin ~]# sed 's#/(aaa/) /(bbb/)#/1#g' a.txt
aaa
[root@baiguin ~]# sed 's#/(aaa/) /(bbb/)#/2#g' a.txt
bbb
[root@baiguin ~]# sed 's#/(.*/) /(.*/)#/2#g' a.txt
bbb
[root@baiguin ~]# sed 's#/(.*/) /(.*/)#/1#g' a.txt
aaa
2) [root@baiguin ~]# ifconfig eth0|sed -n 2p|sed -n "s/^.*addr:/(.*/) Bcast.*$//1/gp"
192.168.26.132
3)[root@baiguin ~]# ifconfig eth0 |sed -n 2p |sed 's#^.*addr:##g'|sed 's# Bcas.*$##g'
192.168.26.132
2 如何取得wang.txt的權限對應的數字內容(如-rw-r-r-為644,要求使用命令取得644或0644數字)1)通過Sed正則進行截取
[root@baiguin ~]# stat wang.txt |sed -n 's#^.*(0/(.*/)/-.*$#/1#gp'
644
2)通過awk正則進行截取
[root@baiguin ~]# stat wang.txt |awk -F "[: (0]+" '{if (NR==4) print $2}'|cut -d"/" -f1
644
[root@baiguin ~]# stat wang.txt |awk -F "[(0/]" '{if (NR==4) print $3}'
644
3)通過命令直接取
[root@baiguin ~]# stat -c %a wang.txt
644
注:可“man stat”查看參數
4)另外思考方法
[root@baiguin ~]# ls -l wang.txt |cut -c 2-10|tr rwx- 4210|awk -F "" '{print $1+$2+$3,$4+$5+$6,$7+$8+$9}'|sed 's# ##g'
644
注:tr rwx- 4210的用法
3 一些文件被黑客植入一樣的病毒,如何將這些文件相同的病毒代碼刪除。步驟:
1)先模擬創建幾個文件,并在文件中隨意輸入一些內容。
[root@baiguin ~]# touch wang/w.txt wang/bai/b.txt wang/bai/gui/g.txt
2)用find查找出wang目錄下所有的文件,并通過xargs命令將需要添加的病毒依次添加進去。
[root@baiguin ~]# find wang -type f |xargs sed -i '1 i <11111111111111111111111111111>'
注:注意sed后-i命令的用法
3)在生產環境中,要替換文件時需先全部備份,以防二次破壞文件。在此編寫一腳本進入對要替換的文件做備份。
[root@baiguin ~]# cat test.sh
file=`find /root/wang -type f >1.txt`
filename=`cat 1.txt`
for i in $filename;do
cp $i /bak
done
[root@baiguin ~]# sh test.sh
[root@baiguin ~]# ls /bak/
b.txt g.txt w.txt
4)通過sed將相同的命令全部替換成空刪除
查看到每個文件都有相同的字符
[root@baiguin ~]# cat wang/w.txt
<1111111111111111111111111111111111111111111111111111111>
<dsfaasdfasdfsadffdfsdafddsfasd>
dfajdf
[root@baiguin ~]# cat wang/bai/b.txt
<1111111111111111111111111111111111111111111111111111111>
sdfdfsdf
sdf
解決辦法:通過sed命令刪除
[root@baiguin ~]# find wang -type f |xargs sed -i '/<1111111111111111111111111111111111111111111111111111111>/d'
或
[root@baiguin ~]# find wang -type f |xargs sed -i '/^.*1111111111>/d'
再次查看,看替換結果。
[root@baiguin ~]# cat wang/w.txt
<dsfaasdfasdfsadffdfsdafddsfasd>
dfajdf
[root@baiguin ~]# cat wang/bai/b.txt
sdfdfsdf
sdf
結果成功!
4 通過tar打包,并以時間date格式打包包名。[root@baiguin ~]# tar zcvf wang-$(date +%F).bak wang
[root@baiguin ~]# ls wang-2014-09-26.bak
wang-2014-09-26.bak
案例:
如果只希望保存一周的包,按常規方法需要通過手動刪除一周前的包。但可通過date的w參數,來只保存7天,之后循環覆蓋即可。
[root@baiguin ~]# tar zcvf wang-$(date +%w).bak wang
[root@baiguin ~]# ls wang-5.bak
5 下列快捷鍵含義Ctrl + a ; 光標到行的開頭
Ctrl + e ; 光標到行的結尾
Ctrl + d ; 退出當前窗口,或當前用戶
Ctrl + l ; 清屏或clear命令
Ctrl + u ; 刪除光標前面行的內容
Ctrl + k ; 刪除光標后面行的內容
Ctrl + s ; 鎖住屏幕
Ctrl + q ; 解鎖屏幕
新聞熱點
疑難解答