正则表达式和数据库操作

下边看起来就高端一点

数据处理,慢条斯理

grep命令:筛选数据

grep 是Globally search a Regular Experssion and Print
意思是全局搜索一个正则表达式,并且打印
换个意思就是在文件中查找关键字并查找关键字所在行

grep的简单用法

grep命令的最基本用法
grep text file
text 代表要搜索的文本,file 代表共搜索的文件
例如

grep path /etc/profile

在这里插入图片描述列出了在etc下的profile文件中所有包含path的行,并且用颜色标记出来
grep更像一个过滤器,筛选出你要找的对象,
如果查找的文本是带有空格的文本,那就要用引号括起来

grep 'hello world'  file

-i 参数:忽略大小写

默认情况下,grep命令是区分大小写的
也就是说搜索的文本严格的按着大小写来搜索
比如我搜索的文本是text
就不会搜出 Text ,teXt等文本
我们可以给grep加上-i参数,让他变得忽略大小写

grep -i path /etc/profile

在这里插入图片描述可以发现 搜索的结果增多了 ,因为忽略的大小写,PATH也会搜索出来

-n参数:显示行号

-n参数就是显示搜索文本所在的行号

grep -n path /etc/profile

在这里插入图片描述

-v参数:只显示文本不在的行

v是invert的缩写,表示 颠倒,倒置

grep -v path /etc/profile

在这里插入图片描述

-r参数:在所有子目录和文件中查找

r是英语 recursive的缩写 表示 递归
如果是-r参数,那最后的一个参数file就要换成目录了,在所有子文件和目录中查找文本

grep -r "Hello World" folder/

意思是在folder目录的所有子目录和子文件中查找Hello World这个文本
rgrep 相当于grep -r

grep的高级用法:配合正则表达式

正则表达式使用单个字符串
来描述、匹配一系列符合某个句法规则的字符串
在这里插入图片描述

-E参数:使用正则表达式

E是extended regular expression的第一个字母
表示扩展的正则表达式

grep -E Path /etc/profile

在这里插入图片描述这也没什么不同的嘛
下来接着看

grep -E ^path /etc/profile

在这里插入图片描述这里用到了^号,表示匹配行首(匹配输入字符串的开始位置)
^后边出现的字符需要出现在一行的开始
所以出现了上图中包含path并以path开始的这一行

在举一人例子:

grep -E [Pp]ath /etc/porfile

在这里插入图片描述这里用到了 [ ]:其作用是将[ ]的字符任取其一,
[Pp]ath的意思,就是既可以为path,也可以为Path
在比如
由于搜索包含0-4的任意数字的行

grep -E [0-4] /etc/profile 

在这里插入图片描述
其实在CentOS和Ubuntu这样的Linux发行版中,
不加-E参数也是可以的,正则表达式始终激活的
有的Unix发行版系统可能不加-E参数就不能搜索正则表达式

sort命令:为文件排序

sort命令对文件的行进行排序

Sorting(排序)算法

在这里插入图片描述首先我见一个文件,写一些内容用于排序,开始是这样的内容显示
在这里插入图片描述使用sort name.txt排序后,按照首字母英文字母进行排列
在这里插入图片描述
但是在cat 一下name.txt 你会发现内容顺序没有变,也就是说单独运行sort只会讲排序的内容显示在终端上,并不会改变文件内容,那如果想要将排序后的内容写入新文件呢?

-o参数:将排序后的内容写入新文件

o是output的首字母,表示 输出
就是将排序结果输出到文件中

sort -o name_sorted.txt name.txt
cat name_sorted.txt

在这里插入图片描述发现新文件里写入了排序成功的内容

-r 参数:倒叙排列

r是reverse的缩写,是 相反 反面 的意思
与普通仅用sort正好是相反的

sort -r name.txt

在这里插入图片描述
在这里插入图片描述

-R参数:随机排序

R是英语random的首字母,表示 随机性 任意的
-R参数比较无厘头,因为他会让sort命令排序变为随机
就是任意排序,每次都不一样

sort -R name.txt

在这里插入图片描述在这里插入图片描述
两次使用-R参数对name.txt文件进行排序,排序结果是随机不同的

-n 参数:对数字排序

默认的,仅用sort命令的时候,是不区分字符是否是数字的
会把这些数字看成字符串,安装1-9的顺序排列
例如138会排在25前边,因为1排在2前边
在这里插入图片描述
那么怎么办呢
那就使用-n参数
在这里插入图片描述
给你想要的

wc命令:文件统计

wc呢,是word count的缩写 word是 单词 的意思 count是计数的意思,不是公共厕所的意思,当然你也可以这么记,去公厕就能统计文件
看上去wc命令是统计单词数目,但是wc的功能不仅仅如此
wc命令还可以统计行数,字符数,字节数等

wc name.txt

在这里插入图片描述
后边的文件名大家都能明白,但是前三个是什么呢?
第一个9:是行数(newline counts) 计数行
第二个10:是单词数(word counts)计数单词数
第三个29:是字节数(byte counts)计数字节数
我们来开一些man手册,
在这里插入图片描述
打印每个文件的行数,单词数,字节数
还可以差多个文件

wc name_sorted_txt name.txt

之前排序的两个文件
在这里插入图片描述

-l参数:统计行数

为了只统计行数,我们加入-l参数

wc -l name.txt

只统计name.txt 中的文本行数
在这里插入图片描述
里边就9行,没毛病

-w参数:统计单词数

如果想只统计单词数,那么

wc -w name.txt

在这里插入图片描述-w参数用于统计用空格隔开的字符串数目

-c参数:统计字节数

c 英语characer的缩写,字节

wc -c name.txt    

在这里插入图片描述统计了包含换行符的所有字符数

-m参数:统计字符数

wc -m name.txt

在这里插入图片描述

-uniq命令:删除文件中重复的内容

uniq是英语unique的缩写,表示 独一无二 的
我们创建一个文件来使用
在这里插入图片描述
可见上图有三个aaa
uniq命令有点 呆 ,只能将连续的重复行变为一行

unqi repeat.txt

在这里插入图片描述
三个连续的aaa变为了一个
和sort命令一致,uniq只是把修改的修改打印出来,并不能改变源文件
但是sort处理后的文件名在前参数,uniq在后参数

uniq repeat.txt unique.txt

在这里插入图片描述

-c参数:用于统计重复的行数

c是count的缩写,表示统计计数

uniq -c repeart.txt

在这里插入图片描述

-d参数:只统计重复行的值

d是duplicated的缩写,表示 重复的

uniq -d repeat.txt

在这里插入图片描述

cut命令:剪切文件的一部分内容

cut是英语 剪切 的意思
cut命令用于对文件的每一行进行处理

-c参数:根据字符数来剪切

c是character的缩写,表示 字符
如果我们想要name.txt 的每一行只保留第二到第四个字符

cut -c 2-4 repeat.txt

在这里插入图片描述

总结

grep工具应该是最常见的在文件中查找关键字的工具了

grep命令可以通过正则表达式来查找关键字

一般正则表达式会比较难记,但是很强大
我们可以调用egrep,其等价于grep -E
使用-i参数: 使grep方法大小写不敏感
使用-n参数:显示行号
使用-v参数:不显示关键字所在的行
使用-r参数:在其所有子目录或文件下查找

sort命令用于为文件中的行 按字母顺序排序

使用-n参数可以按照数字排序
使用-r参数倒叙
使用-R参数随机排序
使用-o参数将修改后的内容写入一个新文件

wc命令用于对文件的统计

使用-l参数 :统计行数
使用-w参数:统计单词数
使用-c参数 :统计字节数
使用-m参数:统计字符数

uniq命令:去重

使用-c参数:用于统计重复的行数
使用-d参数:只统计重复的行的值

cut命令:剪切文件的部分内容

使用-c参数,根据子读书来剪切

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值