前提
有時候我們需要從文件裏提取數據,當然也可能是老闆甩過來一個文件讓你把裏面的電話和郵箱全部提取,這時候一條一條的複製粘貼總是太麻煩,這個時候我們就需要利用一些命令和正則表達式在linux系統中自動提取出來。
目標
1.提取data2
文件中的數字開頭的行,並把他們寫入/home/root/num
中。
2.提取data2
文件中的郵箱,並把他們寫入/home/root/mail
中。
補充:data2
文件目錄/home/root/data2
data2
包含內容
實例
1.提取數字開頭的行,並寫入/home/root/num中
grep '^[0-9]' /home/root/data2 > /home/root/num # ^:匹配輸入字符串的開始位置
# [0-9]:匹配所有數字
# >:重定向
2.提取文件中的所有郵箱,並寫入/home/root/amil中
grep -E '*@*\.com' /home/root/data2 > /home/root/mail # -E:擴展正則表達式
擴展正則表達式與正則表達式的不同:它們之間的區別僅僅是元字符不同。
基礎正則表達式(BRE)元字符:^
,$
,.
,[]
,*
。
擴展正則表達式(ERE)元字符:添加了+
,?
,|
,()
,{}
。
元字符作用詳細信息:參考網址