linux100day(day4)--文本处理三剑客
在介绍三剑客之前,先来认识一下通配符和正则表达式
通配符

正则表达式
作用:通过一些特殊字符,来表示一类字符内容
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中的两位或三位数

linux100day(day4)--文本处理三剑客的更多相关文章
- 文本处理三剑客之sed命令
第十八章.文本处理三剑客之sed命令 目录 sed介绍 sed命令常用选项 sed常用编辑命令 sed使用示例 sed高级语法 18.1.sed简介 sed全名stream editor,流编辑器,s ...
- 文本处理三剑客之 Sed ——一般编辑命令
sed简介 sed (stream editor for filtering and transforming text) 是Linux上的文本处理三剑客之一,另外两个是grep和awk. sed又称 ...
- 文本处理三剑客之 grep
grep简介 grep(Global search REgular expression and Print out the line)是Linux上的文本处理三剑客之一,另外两个是sed和awk. ...
- shell脚本之正则表达和文本处理(文本处理三剑客:1、grep 2、sed 3、awk)
文本处理三剑客:1.grep 2.sed 3.awk 一.grep:(过滤) grep的使用,主要的参数有: -n :显示行号:-o :只显示匹配的内容-q :静默模式,没有任何输出,得用e ...
- Linux文本处理三剑客之sed
推荐新手阅读[酷壳]或[骏马金龙]开篇的教程作为入门.骏马兄后面的文章以及官方英文文档较难. [酷壳]:https://coolshell.cn/articles/9104.html [骏马金龙-博客 ...
- Linux文本处理三剑客之grep及正则表达式详解
Linux文本处理三剑客之grep及正则表达式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux文本处理三剑客概述 grep: 全称:"Global se ...
- 关于Linux文本处理“三剑客”的一些小操作。
Linux文本处理“三剑客”,即grep.sed.awk,这是Linux中最核心 的3个命令. 一.首先做个简单的介绍: 1.awk:linux三剑客老大,过滤,输出内容,一门语言.NR代表行号. 2 ...
- Linux文本处理三剑客之——grep
一Linux文本处理三剑客之——grep Linux文本处理三剑客都支持正则表达式 grep :文本过滤( 模式:pattern) 工具,包括grep, egrep, fgrep (不支持正则表达式) ...
- Linux 文本处理三剑客之grep
文本处理都要使用正则表达式,正则表达式有: 基本正则表达式:grep或者egrep -G 扩展正则表达式:egreo或者grep -E Linux 文本处理三剑客: sed:stream editor ...
- 文本处理三剑客与shell正则表达式
文本处理三剑客 提到对于文本的处理上,除了vim这个强大的编辑器之外,还有使用命令的形式去处理你要处理的文本,而不需要手动打开文本再去编辑.这样做的好处是能够以shell命令的形式将编辑和处理文本的工 ...
随机推荐
- 28nm工艺下,自动生成管脚排列文件,给设计加PAD,并在PAD上面打Label的流程(含Tcl脚本)
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...
- python无网安装psycopg2
1. 问题描述 python项目要获取greenplum数据库数据,gp底层是postgresql,需要使用python的第三方工具包psycopg2操作数据库,但是问题是服务器上没有网络,无法在 ...
- 比赛:小奔与不等四边形solution
题目: 题目背景 有这样一道经典的数学题:已知一个四边形的边长是四个连续的正整数,求证这个四边形的面积的最大值不为整数.小奔轻松地证明了这个问题,现在问题来了,大奔要求小奔以最快的速度算出给定边长的四 ...
- mui.storage 将数据持久化到本地
在一个用mui做得app中,要求把历史记录放在本地(感觉...无法言喻的sd),但最终还是做了,以下来记录本次的学习到的内容 mui.plusReady(function() { //这里是一开始定义 ...
- Android解决RecyclerView中的item显示不全方案
最近的项目中实现订单确定页面.需要使用ScrollView嵌套RecyclerView,当RecyclerView中的item数量比较多时,就会出现item只显示一部分数据,并没有将用户勾选的商品数量 ...
- 每日一问:Android 消息机制,我有必要再讲一次!
坚持原创日更,短平快的 Android 进阶系列,敬请直接在微信公众号搜索:nanchen,直接关注并设为星标,精彩不容错过. 我 17 年的 面试系列,曾写过一篇名为:Android 面试(五):探 ...
- [译]为任意网格计算tangent空间的基向量
+BIT祝威+悄悄在此留下版了个权的信息说: [译]为任意网格计算tangent空间的基向量 Computing Tangent Space Basis Vectors for an Arbitrar ...
- docker学习ppt
保存下学习资料
- 嵌套&匿名&高阶函数
嵌套&匿名&高阶函数 嵌套函数 函数可以嵌套定义并调用函数 name = "小明" def change(): name = "小明,你好" d ...
- ssm框架下的文件上传和文件下载
最近在做一个ssm的项目,遇到了添加附件和下载的功能,在网上查了很多资料,发现很多都不好用,经过摸索,发现了一套简便的方法,和大家分享一下. 1.在自己已经构建好的maven web项目中 pom. ...