前提
有时候我们需要从文件里提取数据,当然也可能是老板甩过来一个文件让你把里面的电话和邮箱全部提取,这时候一条一条的复制粘贴总是太麻烦,这个时候我们就需要利用一些命令和正则表达式在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)元字符:添加了+
,?
,|
,()
,{}
。
元字符作用详细信息:参考网址