Linux常用命令(4)_ [文件数据处理命令]

文件数据处理


Linux下文件数据的处理也是常见的需求操作,当打开一个含有大量数据的文件时,怎样搜索其中我想要的信息;有的数据可能含有时间,若要按时间排序该怎么操作;以及将一个项目数据文件的归档,压缩的操作,下面开始介绍。

一:搜索数据:

对于文件数据处理,Linux中有3剑客(grep,sed,awk),其中广泛使用查找文件内容的一剑就是grep命令(或者其扩展格式egrep,fgrep),其命令行格式如下:
grep [options] pattern [file]
搜索后,输出返回所有的就是包含Pattern关键字的行,下表是针对options中的会常用几个介绍,关于更多的option指令解释,有兴趣可以使用man grep命令进行查看:

ClassOptionsDescribe
通用显示-V显示Version
匹配模式选择-E扩展grep功能(类似egrep) ,意味着可以使用正则表达式,可以直接用egrep
匹配模式选择-F扩展grep功能(类似fgrep),它是搜索字符串而不是搜索匹配表达式的模式,它使用快速压缩算法,故它相较于-E扩展和-G搜索同一个字符串内容速度会快一些;若同时在多个文件查找,则返回匹配的文件名;可以直接用fgrep命令
匹配模式选择n-Ggrep命令的默认匹配功能
匹配控制-e指定字符串作为查询,可以同时用-e [字符串]指定多组同时查找,输出查找的内容也会按顺序显示
匹配控制-i忽略字符串大小写区别
匹配控制-v反转查找,只打印未匹配到的信息
匹配控制-w只匹配全单词,单词部分不能 匹配,ex:搜索Student,文中的Students就不能匹配
通用输出控制-c符合寻找数据的总行数,若用-vc则可以显示有多少行未匹配
通用输出控制–color将匹配到的相关内容以颜色显示,color定义可通过环境变量GREP_COLOR设定
通用输出控制-L查找并返回没有符合指定文本内容的文件名,需注意:在第一个匹配的文件名出现后,搜索即停止
通用输出控制-l查找并返回符合指定文本内容的文件名,需注意:在第一个匹配的文件名出现后,搜索即停止
通用输出控制-o僅显示匹配到的字符串,
通用输出控制-q静默输出,即在标准输出中不显示任何内容,如果有匹配的字符,exitcode会是0
输出行前缀控制-n显示匹配内容的行号
内容行控制-A显示被模式匹配到的行以及之后的行内容
内容行控制-B显示被模式匹配到的行以及之前的行内容
内容行控制-C显示被模式匹配到的行以及前后各行内容

PS:使用grep操作匹配时,注意使用双引号,若单引号为强引用,需要防止有可能被系统误认为参数或者命令,从而报错

几个操作示例如下:
【查看grep版本信息】
在这里插入图片描述
【多字符串搜索】
在这里插入图片描述
【字符串符合与不符合行数搜索】
在这里插入图片描述

【全单词匹配搜索】
在这里插入图片描述

【前后显示行数限制搜索】
在这里插入图片描述
对于正则表达式该如何使用部分,会通过上面的链接另一篇进行介绍。


二:排序数据:

排序数据用到的命令就是sort了,这个基本看名字就知道命令是排序了,命令格式如下:
sort [option] File
针对option部分,相关常用指令整理如下表,同样,如果想了解更多,可以直接用man sort查看。

ClassOptionsDescribe
排序选项-k(–key=POS1[,POS2])排序从POS1位置开始,若指定POS2的话会到POS2结束
排序选项-t (–field-separator=SEP)制定一个用来区分排序位置的字符,比如’:’
排序选项-n将数组识别成数字而不是字符,并按值进行排序
排序选项-g将按通用数值进行排序(不同于-n,会将值当浮点数来排序,支持科学计算表示的值)
排序选项-M按月进行排序,使用此就可以按3字符月份进行排序
排序选项-o(或–output=file)排序结果输出到指定文件中
排序选项-r反序排序(升序变成降序)
排序选项-b排序时忽略起始位置的空白
排序选项-i排序时忽略不可打印字符
排序选项-d僅考虑空白和字母,不考虑特殊字符排序
排序选项-f忽略大小写排序排序,若有大写字母,会排在前面

Ps:举例:目前想看当先系统有那些用户,并将用户根据ID信息来进行排序,则可以主要针对passwd文件进行排序操作显示,如下图:
通过-t指定分隔符,-k指定起始排序字段(从1开始数)
在这里插入图片描述


三:压缩数据:

压缩包大家都有接触过,平常用的windows系统下常见的zip包,而Linux下常见的gzip,gzip包是GNU项目产物,主要是用来替代原先Unix下的compress工具包的免费版本,gzip包括以下3种工具:

  1. gzip:用来压缩文件
  2. zcat:用来查看压缩过的文本文件内容
  3. gunzip:用来解压文件

gzip包平时除了单个文件压缩,可以通过通配符批量压缩文件夹下的单个文件,具有便利性,举例如下:
在这里插入图片描述
解压gz文件
在这里插入图片描述

查看gz中文件内容(无需解压操作)
在这里插入图片描述


四:归档数据:

gzip命令在处理Linux下单个文件时很实用,但是对于Linux下的归档标准工具命令则是tar;tar命令开始是用来将文件写到磁盘上归档使用,但它也能将输出写到文件里,故变成Linux中普遍使用的归档工具命令,也是开源程序普遍采用的方法,其格式如下:
tar function [options] Object1 Object2…

ClassOptionsDescribe
function-c(–create)创建一个新的tar文件
function-A(–concatenate)将已有的tar文件追加到另外一个已有的tar文件
function-r(–append)追加文件到已有的tar文件末尾
function-t(–list)显示已有的tar文件的内容
function-u(–update)将现有tar文件中新的同名文件追加到该tar文件中,即更新tar文件
function-x(–extract)从已有tar文件提取文件
function-d(–diff)检查归档文件与文件系统的不同之处
function–delete将现有tar文件中删除

针对每个function功能,可以使用option追加對归档文件的特定行为,下面为常见选项:

ClassOptionsDescribe
option-C dir切换到指定目录
option-f file切换到指定目录
option-p保留所有文件权限
option-v在处理文件时显示文件
option-z将输出重定向给gzip命令来压缩内容
option-j将输出重定向给bzip2命令来压缩内容

上述命令通常是搭配一起使用 ,比如:
将几个文件批量归档到一个tar文件(包括文件夹和gz文件):
在这里插入图片描述
列出上面归档的tar1.tar文件中的内容,但是不提取tar文件:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值