全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解正则表达式及Linux三大文本处理工具

grep、sed和awk都是文本处理工具,虽然都是文本处理工具但却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了。

一、正则表达式

1、匹配字符的类型

[a-z]:小写字母

[A-Z]:大写字母

[a-Z]:小或大写字母

[0-9]:数字

[a-zA-Z0-9]:表示匹配一个为字母或数字的字符

. :匹配1个任意字符,空格除外

[0-f]:16进制数

abc | def:abc或def
a (bc | de) f:abcf 或 adef

\<:单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词

\>:单词尾

[^表达式]:除小写字母以外的所有字符,如此类推。

2、后跟以下符号控制匹配的数量

此类符号的左侧要有上面第一点的表达式

表达式*:0或n个字符

表达式+:1或n个字符

表达式?:0或1个字符

表达式{n}:n个字符

表达式{n:m}:n到m个字符

表达式{n,}:至少n个字符

【例】[a-z]*表示匹配0个或多个小写字母

3、将匹配的字符控制在头尾
^表达式:头部符合

表达式$:尾部符合

二、Linux三大文本处理工具

1、egrep 筛选工具

grep的扩展版,可以使用正则表达式

语法:

egrep -选项  '正则表达式'  文件名

选项:

-n :显示行号
-o :只显示匹配的内容
-q :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容
-l :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc
-A :如果匹配成功,则将匹配行及其后n行一起打印出来
-B :如果匹配成功,则将匹配行及其前n行一起打印出来
-C :如果匹配成功,则将匹配行及其前后n行一起打印出来
--color
-c :如果匹配成功,则将匹配到的行数打印出来
-i :忽略大小写
-v :取反,不匹配
-w:匹配单词

2、sed 流编辑器

语法:

语法1:sed  -选项  '数字定位+命令'  文件名

选项:

-n:静默模式,不输出
-e:多项编辑,这个不是很清楚
-i:直接修改文件内容,而不是输出
-r:扩展模式,可使用正则表达式
-f:指定文件名,将动作写在新的文件内

命令:

a ∶ 追加append,
c ∶ 改变change,
d ∶ 删除delete,
i ∶ 插入insert, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
p∶ 列印print
s∶ 取代substitute,可以直接进行替换的工作。通常这个 s 的动作可以搭配正则表达式。例如 1,20s/old/new/g

*s命令特别说明:

使用{命令1:命令2:命令3}可增加使用多个命令

语法2:sed  -r  '替换命令s/正则表达式/替换内容/贪婪选项g'  文件名

定位的两种方法:

①数字定位(输入行序号定位)

十进制数
1:单行
1,3:范围 从第一行到第三行
2,+4:匹配行后若干行
4,~3:从第四行到下一个3的倍数行
2~3:第二行起每间隔三行的行
$:尾行
1!:除了第一行以外的行

【例】sed -n '1p' /etc/passwd

②正则表达式定位

正则必须用//包裹起来

扩展正则需要用 -r 参数或转义

替换可使用正则表达式的子模式,即小括号(),可以\1、\2代表子模式

【例】sed -r 's/(.)(.)/\2\1/ file1 表示将匹配到的第一部分和第二部分替换

*贪婪选项:填上g,代表把一行中所有匹配项替换

3、awk 文本分析工具

由命令、正则(需要用//包围起来)、比较和关系运算组合而成

使用option中的-F参数定义间隔符号

用$1,$2,$3等的顺序表示files中每行以间隔符号分隔的各列不同域,NF变量表示当前记录的字段数

语法

awk -选项 参数  '逻辑判断{命令 变量1,变量2,变量3}' 文件名

选项

-F 定义字段分隔符,默认的分隔符是连续的空格或制表符
-v 定义变量并赋值 也可以借用次方式从shell变量中引入

AWK变量

NR 当前记录的个数(全部文件连接后的统计)
FNR 当前记录的个数(仅为当前文件的统计,非全部)
FS 字段分隔符 默认为连续空格或制表符,可以使用多个不同的符号做分隔符 -F[:/]
OFS 输出字符的分隔符 默认是空格
# awk -F: 'OFS="=====" {print $1,$2}' /etc/passwd
root=====x
NF 当前读入行的字段个数
ORS 输出记录分隔符 默认是换行
# awk -F: 'ORS="=====" {print $1,$2}' /etc/passwd
root x=====bin x=====
FILENAME 当前文件名

【例1】使用AWK变量

# awk '{print NR,FNR,$1}' file1 file2 
1 1 aaaaa
2 2 bbbbb
3 3 ccccc
4 1 dddddd
5 2 eeeeee
6 3 ffffff
# 

【例2】引用shell变量的方法

# a=root
# awk -v var=$a -F: '$1 == var {print $0}' /etc/passwd
或者 把整个命令拆开传递,让shell变量外露,
# awk -F: '$1 == "'$a'" {print $0}' /etc/passwd
# a=NF
# awk -F: '{print $'$a'}' /etc/passwd

逻辑运算(可直接引用域进行运算)

= += -= /= *= 赋值

&& || ! 逻辑与 逻辑或 逻辑非

~ !~  匹配正则或不匹配,正则需要用 /正则/ 包围住
< <= > >= != ==  关系 比较字符串时要把字符串用双引号引起来

$ 字段引用:字段引用需要加$,而变量引用直接用变量名取

+ - * / % ++ --  运算符

转义序列

\\ \自身
\$ 转义$
\t 制表符
\b 退格符
\r 回车符
\n 换行符
\c 取消换行

以上所述是小编给大家介绍的正则表达式及Linux三大文本处理工具,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# 正则表达式  # linux  # 文本处理工具  # linux文本处理工具及正则表达式集锦  # Linux中文本处理工具之sort命令详解  # Linux中文本处理工具之cut命令详解  # Linux文本处理工具使用详解  # 分隔符  # 打印出来  # 多个  # 则将  # 都是  # 需要用  # 三大  # 可以使用  # 行号  # 小编  # 换行  # 字串  # 都有  # 在此  # 没有任何  # 要有  # 两种  # 会在  # 列印 


相关文章: 如何在IIS中新建站点并配置端口与物理路径?  网站制作报价单模板图片,小松挖机官方网站报价?  如何在云服务器上快速搭建个人网站?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  营销式网站制作方案,销售哪个网站招聘效果最好?  平台云上自主建站:模板化设计与智能工具打造高效网站  如何挑选优质建站一级代理提升网站排名?  如何快速搭建二级域名独立网站?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  如何在建站之星绑定自定义域名?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  常州企业建站如何选择最佳模板?  如何快速查询网址的建站时间与历史轨迹?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  家庭服务器如何搭建个人网站?  如何通过二级域名建站提升品牌影响力?  公众号网站制作网页,微信公众号怎么制作?  测试制作网站有哪些,测试性取向的权威测试或者网站?  如何通过服务器快速搭建网站?完整步骤解析  如何选择适合PHP云建站的开源框架?  安徽网站建设与外贸建站服务专业定制方案  如何在阿里云部署织梦网站?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  北京专业网站制作设计师招聘,北京白云观官方网站?  如何在宝塔面板中创建新站点?  建站之星伪静态规则如何正确配置?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  建站之星如何开启自定义404页面避免用户流失?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  移民网站制作流程,怎么看加拿大移民官网?  如何制作网站标识牌,动态网站如何制作(教程)?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何在建站宝盒中设置产品搜索功能?  如何用花生壳三步快速搭建专属网站?  长沙企业网站制作哪家好,长沙水业集团官方网站?  h5在线制作网站电脑版下载,h5网页制作软件?  如何通过网站建站时间优化SEO与用户体验?  如何通过山东自助建站平台快速注册域名?  宝塔Windows建站如何避免显示默认IIS页面?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  ,网站推广常用方法?  建站之星导航菜单设置与功能模块配置全攻略  如何用5美元大硬盘VPS安全高效搭建个人网站?  焦点电影公司作品,电影焦点结局是什么?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。