热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

正则表达式_文本处理工具和正则表达式

文件查看catnltacrevcat常用选
文件查看

cat
nl
tac
rev


cat常用选项

-E:显示行结束符$
-n:对显示出的每一行进行编号
-A:显示所有控制符
-b:非空行编号
-s:压缩连续的空行成一行




示例:

cat -E :显示行结束符$
技术图片
cat -A:显示所有控制符

技术图片
cat -n :对显示出的每一行进行编号 ,包括空行
技术图片
cat -b:非空行编号
技术图片
cat -s :压缩连续的空行成一行 (压缩相邻的空行成一行)
技术图片

tac

把文件按相反方向显示
技术图片

nl

跟cat -b效果一样,编号
技术图片

rev

把文件同一行的内容反方向显示
技术图片

查看非文本文件内容



hexdump
od
xxd



分页查看文件内容



more
less
技术图片



示例:

more:分页查看文件

技术图片
技术图片
more -d: 显示翻页及退出提示
less:一页一页地查看文件或STDIN输出
技术图片
技术图片


显示文本前或后行内容

head

技术图片

tail

技术图片

tailf

技术图片



head示例

默认显示前十行

技术图片
head -c :显示文本前x字节
例:取出/etc/passwd 文件的前十个字节
技术图片
head -n(n可省略) :显示文本前x行内容
例:取出/etc/passwd文件的前十行内容
技术图片

tail示例

默认显示文本的后十行

技术图片
tail -n :显示文件后x行
技术图片
tail -f :跟踪文件新加内容
技术图片
tail -F:跟踪文件名

技术图片

练习

找出ifconfig “网卡名” 命令结果中本机的IPv4地址
技术图片


cut

按列抽取文本


-d DELIMITER: 指明分隔符,默认tab
-f FILEDS:
#: 第#个字段
#,#[,#]:离散的多个字段,例如1,3,6
#-#:连续的多个字段, 例如1-6
混合使用:1-3,7
-c 按字符切割
--output-delimiter=STRING指定输出分隔符
显示文件或STDIN数据的指定列
cut -d: -f1 /etc/passwd
cat /etc/passwd | cut -d: -f7
cut -c2-5 /usr/share/dict/words ?




示例

cut -d -f 例:以冒号为分隔符,取出第1.3.4列
技术图片
cut -c:按字符切割
技术图片

练习

取出ip地址
技术图片
取出版本号
技术图片
取出磁盘空间使用率
技术图片
查出/tmp的权限,以数字方式显示
技术图片
技术图片


paste

合并文件


-d 分隔符:指定分隔符,默认用TAB
-s : 所有行合成一行显示




示例

技术图片
paste -s:
例:把文件a/b.log文件合成一行显示
技术图片


分析文本的工具

wc ?

文本数据统计

sort ?

整理文本

diff和patch

比较文件


.



wc

可用于统计文件的行总数、单词总数、字节总数和字符总数
可以对文件或STDIN中的数据统计
wc story.txt
39 237 1901 story.txt
行数 字数 字节数 ?

常用选项


-l 只计数行数
-w 只计数单词总数
-c 只计数字节总数
-m 只计数字符总数
-L 显示文件中最长行的长度




示例

wc -l: 只查看文件行数
技术图片
wc -w :只计文本单词总数
技术图片
wc -L :挑出a.log文件最长的一行
技术图片
wc -m:只计字符总数
技术图片
wc -c :只计字节总数
技术图片


sort

文本排序

把整理过的文本显示在STDOUT,不改变原始文件

常用选项


-r 执行反方向(由上至下)整理
-R 随机排序
-n 执行按数字大小整理
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique)删除输出中的重复行
-t c 选项使用c做为字段界定符
-k # 选项按照使用c字符分隔的 # 列来整理能够使用多次



示例

sort -nr :把文本数字按大到小进行排序
技术图片
sort -R:随机排序
例: 随机排序1到55的数字
技术图片
sort -u : 去掉重复行
例:删除a.log文件的重复行
技术图片

练习

查出分区空间使用率的最大百分比值
技术图片
查出用户UID最大值的用户名、UID及shell类型
技术图片


uniq

从输入中删除前后相接的重复的行


常用选项


-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行
注:连续且完全相同方为重复
常和sort命令一起使用
sort userlist.txt | uniq -c



示例

例:查看a.log文件不显示相邻的重复行
技术图片
uniq -c :显示每行重复出现次数
例:查看a.log文件每行重复出现的次数
技术图片
uniq -d : 只显示相邻的重复行
例:查看a.log文件重复过的行
技术图片
uniq -u :只显示不重复行
例:查看文件a.log文件没有重复过的行
技术图片

练习

统计访问过日志的IP地址,并取出访问次数最多的前三个
技术图片


diff

比较两个文件之间的区别


-u :命令的输出被保存在一种叫做“补丁”的文件中 ?使用 -u 选项来输出“统一的(unified)”diff格式文件,最适用于补丁文件
技术图片


.


patch

-b:复制在其它文件中进行的改变(要谨慎使用) ?适用 -b 选项来自动备份改变了的文件


.


diff -u foo.conf foo2.conf > foo.patch
patch -b foo.conf foo.patch



示例

例:查看文件a.log和aa.log文件的不同
技术图片
diff -u :显示的更加详细
例:
技术图片


文本处理三剑客sed

grep:文本过滤(模式:pattern)工具 ?
sed:stream editor,文本编辑工具 ?
awk:Linux上的实现gawk,文本报告生成器



grep

作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检 查;打印匹配到的行
模式:由正则表达式字符及文本字符所编写的过滤条件
常用选项

--color=auto: 对匹配到的文本着色显示 ?
-m # 匹配#次后停止 ?
-v 显示不被pattern匹配到的行 ?
-i 忽略字符大小写 ?
-n 显示匹配的行号 ?
-c 统计匹配的行数 ?
-o 仅显示匹配到的字符串 ?
-q 静默模式,不输出任何信息 ?
-A # after, 后#行 ?
-B # before, 前#行 ?
-C # context, 前后各#行 ?
-e 实现多个选项间的逻辑or关系 grep –e ‘cat ’ -e ‘dog’ file ?
-w 匹配整个单词 ?
-E 使用ERE ?
-F 相当于fgrep,不支持正则表达式 ?
-f file 根据模式文件处理



示例

从/etc/passwd中找出包含root的行

技术图片
grep -m
例: 过滤/etc/passwd中出现的前两次bash
技术图片
grep -v
例: 显示/etc/passwd文件中不匹配到bash的行
技术图片
grep -i :忽略大小写

技术图片
grep -n
例:显示/etc/passwd文件中匹配到root在文件中的行数

技术图片
grep -c
例:统计/etc/passwd文件中匹配到root的行数

技术图片
grep -o
例:只显示/etc/passwd文件中匹配到的bash字符串
技术图片
grep -q
例: 不输出任何信息

技术图片
grep -A
例:显示找到root行的后三行
技术图片
grep -B
例: 显示找到root行的前三行

技术图片
grep -C
例:显示找到root行的前三行和后三行

技术图片
grep -e
例 :显示/etc/passwd文件中匹配到root或bash的行
技术图片

技术图片
grep -f
例:满足greo.log文件中任意一行的都显示出来

技术图片
例:
技术图片


正则表达式

由一类特殊字符及文本字符所编写的模式, 其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能
分两类

基本正则表达式:BRE,grep,vim
扩展正则表达式:ERE,grep -E, egrep,nginx


技术图片
技术图片
技术图片

练习

取出分区利用率最大的值
技术图片

技术图片
例:搜索以bash结尾的行
技术图片


egrep及扩展的正则表达式

egrep = grep -E ?
扩展正则表达式的元字符: ?
字符匹配:
. 任意单个字符 [] 指定范围的字符 [^] 不在指定范围的字符
次数匹配:

* 匹配前面字符任意次
? 0或1次


  • 1次或多次
    {m} 匹配m次
    {m,n} 至少m,至多n次



.

位置锚定:

^ 行首
$ 行尾
<,  语首
>,  语尾


.

分组:

()
后向引用:1, 2, ...


.

或者:

a|b a或b
C|cat C或cat
(C|c)at Cat或cat



推荐阅读
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • Java程序员必会的40个Linux命令!
    你知道的越多,不知道的就越多,业余的像一棵小草!你来,我们一起精进!你不来,我和你的竞争对手一起 ... [详细]
  • 作者|JiekeXu来源|JiekeXu之路(ID:JiekeXu_IT)转载请联系授权|(微信ID:xxq1426321293)大家好,我是Jieke ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 这是一个愚蠢的问题,但我只是对此感到好奇.假设我在Pythonshell,我有一些我查询的数据库对象.我做:db.query(的queryString)该查询在0xffdf842c ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 文章目录一、awk简介二、awk的两种形式语法格式1options:2command:三、awk工作原理四、记录与字段相关内部变量:五、格式化输出:printf函数六、awk模式和 ... [详细]
author-avatar
墨镜猛女班长
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有