文本三剑客 之 grep

本文介绍了Linux系统中用于文本处理的一系列命令,包括grep用于过滤和搜索文本,支持正则表达式的不同选项;sort命令对文件内容进行排序,可按不同数据类型和方向排序;uniq命令用于去除重复行,提供统计和筛选功能;还涉及到了cut命令的字段截取,split的文件拆分以及paste的文件合并。这些工具在日常系统管理和数据分析中十分实用。
摘要由CSDN通过智能技术生成

目录

一.grep

1.grep常用选项命令选项

2.grep 命令选项

3.简单的正则表达式

 二.sort 命令

 三.uniq 去重

 四 .语法格式:  tr 选项 参数

 五.快速裁剪命令——cut:

六.split 文件拆分

七.文件合并——paste


一.grep

文本三剑客了之一,对文本内容进行过滤,支持正则表达式,针对行来进行处理

1.grep常用选项命令选项

-m匹配日几次后停止
-i忽略字符大小写
-v取反
-n只显示行号
-c统计匹配的行数
-o

仅显示匹配到的字符串

-A匹配当前行号的后3行
-B匹配当前行的后3行
-c匹配当前行的前3行和后3行
-e条件或  -e可以跟多个选择
-w匹配整个单词
-E使用ERE,相当于egrep,使用扩展正则
-f处理两个文件相同的内容把第一个文件作为匹配条件
- F 不支持正则表达式
-r

递归目录,但不处理软连接

-R递归目录,单处理软连接

2.grep 命令选项

-m 1 ---------- 多从匹配支取几次结果

-i ----------- 忽略字符打大小写  大写也可以小写也可以

-v ------------ 取反 就是过滤所有包含root的信息和字符

-n --------------显示匹配的行号

 

 -c ------------显示匹配的行数  只有两行

 -o ---------仅显示匹配到的字符串 只对文本内容进行处理就是正则表达式

-A  3 --------  后面必须要加个参数否则会报错   显示当前行后3行

 -B 3 ------- 显示当前行数的前3行

-C ----------显示当前行数的前后 个三行 

 -e ------是逻辑或的意思  或打印root   或打印bash 也认可与同时打印    两个条件满足一个即可 

grep -e root -e bash /etc/passwd

 

 -w -----匹配整个单词  

 -E ------ egrep 使用扩展正则

-f -------- 处理连个文件里的相同类容 第一个文件作为匹配条件

 -r -------- 只处理递归目录,但不处理软连接

grep -r a /opt

 -R -------- 只处理递归目录,但不处理软连接

 

3.简单的正则表达式

"^"  以什么为开头

"&" 以什么为结尾

^$ 空行 

把66.txt 里的空行过滤出来 导入到666.txt 里 使用正则表达式的时候  要用“”引号引起来

cat 66.txt | grep -v "^$" > 666.txt

只匹配一个root的行  多个不匹配

grep -n "^root$" 2.txt

 

 二.sort 命令

以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序

sort 常用命令选项

-f忽略大小写,默认会大写字母排在前面
-b忽略每行前面的空格
-n按照数字进行排序
-r反向排序
-u等同uniq,表示相同的数据仅显示一行,去重
-t指定字段分隔符,默认使用tab键分隔
-k指定排序字段

-o

<输出文件>:将排序后的结果转存至指定文件

1.sort  -f 忽略大小写,默认会大写字母排在前面

 2.sort -n 按照数字进行排序

 3. sort -r 反向排序

 4sort-u 去重


 

 

 5.  sort-o   <输出文件>:将排序后的结果转存至指定文件

 

 

 三.uniq 去重

unip 常用选项

-c统计连续重复的行的次数,并且合并重复的行
-u显示仅出现一次的行(包括不连续的重复行)
-d仅显示重复出现的行(必须是连续的重复行)

1.cat 6.txt | uniq   快捷去重

uniq  选项   参数

uniq -u 显示仅出现一次的行(包括不连续的重复行)

uniq -d 仅显示重复出现的行(必须是连续的重复行)

 uniq -c 统计连续重复的行的次数,并且合并重复的行

 四 .语法格式:
  tr 选项 参数

-c保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换
-d删除所有属于字符集1的字符
-s将重复出现的字符串压缩为一个字符串,用字符集2 替换 字符集1
-t字符集2 替换 字符集1,不加也行

字符集1:
指定要转换或删除的原字符集。当执行转换操作时,
必须使用参数”字符集2“指定转换操作时,必须使用参数”字符集2“指定转换的目标字符集。
但执行删除操作时,不需要参数”字符集2“

字符集2:
指定要转换成的目标字符集

tr .  换成,号

大写替换成小写

保留了ab,替换了c,输出aa

 

 排序输出,压缩空行为一个

 删除ab,打印c

 五.快速裁剪命令——cut:

-d    指定分隔符(默认分隔符为Tab)
-f按字段进行截取。指定第n个字段
-b 以字节为单位进行截取
-c 以字符为单位进行截取

         -d 指定分隔符(默认分隔符为Tab)

 

六.split 文件拆分

-l指定行数
-b指定文件的大小

[root@localhost opt]# cp /etc/passwd /opt/test2.txt
[root@localhost tr]#  split -l 20 test2.txt   sc
[root@localhost opt]# split -b 2m httpd-2.4.29.tar.bz2 sc  指定文件大小,不需要大小写
 

七.文件合并——paste

按照字段来进行文件的合并
格式:

-d用于指定文件的分隔符(默认情况下为制表符"\n")
-s将列和行的内容进行互相交换

paste a b和cat a b 之间的区别 (左右合并)
面试题  统计当前主机的连接状态

   1ESTAB   #表示建立的 TCP 连接处于活动状态
    14 LISTEN

统计当前连接主机数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞翔小怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值