linux100day(day4)--文本处理三剑客
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux100day(day4)--文本处理三剑客,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2780字,纯文字阅读大概需要4分钟。
内容图文
![linux100day(day4)--文本处理三剑客](/upload/InfoBanner/zyjiaocheng/957/2a17c9a7a1b54148a59d7e3eb0141d8e.jpg)
在介绍三剑客之前,先来认识一下通配符和正则表达式
通配符
正则表达式
作用:通过一些特殊字符,来表示一类字符内容
1、字符匹配
. 任意一个字符
[ ] 范围内的任意一个字符
[^ ] 取反
字符类 [:digit:] [:alnum:] [:alpha:] [:lower:] [:upper:] [:space:] [:punct:]
2、次数匹配
* 匹配前面的字符0次到多次
? 匹配前面的字符0次到1次
+ 匹配前面的字符1次到多次
3、位置锚定
^ 锚定行首
$ 锚定行尾
\b 锚定词首和锚定词尾
\> 锚定词尾
\< 锚定词首
<\root\> 匹配root单词
\{m\} 匹配前面的字符m次
\{m,n\} 匹配前面的字符m到n次
4、分组
\(\)
分组特性:默认清空下,linux系统下回为分组指定变量,变量表示形式\1 \2 \3
day4--文本处理三剑客awk,sed,grep
三剑客用法非常灵活强大,需要在练习中慢慢体会,遂以练习为主。
awk(报告生成器)
awk作为三剑客的老大,擅长于取列,主要用来做文本输出格式化
awk在处理文件时是逐行处理的
在awk中,全部行称为$0,第一个字段称为$1,第二个字段称为$2……
NR为行号,NF表示最后一行
BEGIN表示最开始执行,END表示最末尾执行,因为这种特性,BEGIN常常用来赋值
awk [选项] [处理命令(脚本)] [文件]
awk -F 指定输入文件折分隔符 awk -v 赋值一个用户定义变量 awk -f 从脚本文件中读取awk命令
例1、输出/etc/passwd第一行的第一个域
例2、打印出/etc/passwd的第3个域和第5个域
例3、匹配/var/log/message中,带有erro关键字的相关信息
例4、输出/etc/passwd中文件名,行数,列数,和整行信息
awk -F ':' '{print FILENAME, NR , NF ,$0}' /etc/passwd
例5、使用冒号分隔符,查询最后一列
例6、使用awk输出第一块网卡的ip地址
sed(流处理器)
sed作为三剑客的老二,擅长取行,替换和数据搜寻
sed [选项] [脚本] [文件]
sed -e 以选项中指定的脚本来处理输入结果 sed -f 以选项中指定的脚本文件来处理输入结果 sed -n 只显示处理后结果
sed -i 替换
例1、查看/etc/passwd5-10行
这个p代表print打印,同理,d代表delete删除
例2、搜寻/etc/passwd中有root关键字的行
例3、新建一个文件,并删除2到4行
grep(文本行过滤工具)
grep [option]... PATTERN [FILE]
PATTERN一般使用两种方法,正则表达式和通配符
egrep = grep -E 使用扩展的正则表达式进行匹配
fgrep = fast grep 只使用文件通配符进行匹配
grep 默认使用正则表达式进行文本匹配
grep -P使用perl语言的正则表达式引擎进行搜索 grep -f指定文件 grep -i 忽略大小写 grep -v反选 grep --color=auto 语法着色 grep -c统计 grep -o输出时仅显示匹配内容(默认输出的是匹配到的行) grep -n显示行号 grep -w只匹配与整个单词匹配的行
例1、显示/proc/meminfo文件中大小s开头的行
例2、显示/etc/passwd文件中不以/bin/bash结尾的行
例3、显示/etc/passwd文件中UID最大的用户的用户名
例4、如果用户root存在,显示其默认的shell程序
例5、找出/etc/passwd中的两位或三位数
转载于:https://www.cnblogs.com/Y139147/p/11353628.html
内容总结
以上是互联网集市为您收集整理的linux100day(day4)--文本处理三剑客全部内容,希望文章能够帮你解决linux100day(day4)--文本处理三剑客所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。