tr、cut、split、grep -E

目录

tr命令:替换和删除

cut命令:快速裁剪

split命令:文件拆分

文件合并

面试题

1.现在有一个日志文件,有5个G,能不能快速的打开

2.cat合并和paste合并之间的区别?

3.统计当前主机的连接状态:

grep -E 正则表达式

1.使用正则表达式把下列邮箱全部匹配出来

2.匹配下列电话

3.显示/etc/passwd中以sh结尾的行

4.查找/etc/inittab中含有“以s开头,并以d结尾的单词”模式的行

5.查找ifconfig命令结果中的1-255之间的整数

6.在/etc/passwd中取出默认shell为bash的行

7.高亮显示passwd文件中冒号,及其两侧的字符


tr命令:替换和删除

tr  用来对标准输出的字符进行替换,压缩和删除

格式 :tr 选项 参数

tr -c 保留字符集1 的字符,其他的字符用字符集2 来进行替换

tr -d 删除字符集中的一部分

tr -s 把字符集1的部分替换成字符集2 的部分 或者 把连续重复出现的字符压缩成一个字符

sed比tr功能更强,常用于正则表达式

echo abc | tr -c 'ab' 'e'
abee
echo abcd | tr -c 'ab' 'e'
abeee
echo abcd | tr -d 'ab'
cd
echo aaabbb | tr -s 'a'
abbb
echo ababab | tr -s 'b'
ababab		#非连续出现的字符无法进行压缩
echo ababab | tr -s 'ab'
ababab		#这种压缩字符只对单个字符有效,对字符串无效
echo ababab | tr -s 'a' 'c'
cbcbcb
cut命令:快速裁剪

cut  快速裁剪  awk 都可以按行取列

作用:对字段进行截取和裁剪

cut  -d 指定分隔符(默认的分隔符是tab健)

cut  -f  对字段进行截取,指定输出端的内容

cut  -b 以字节为单位进行截取

cut  -c 以字符为单位进行截取

-complement  输出的时候排除指定的字段

-output-delimiter  更改输出内容的分隔符

head -n1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
head -n1 /etc/passwd | cut -d ':' -f 1-4
root:x:0:0
head -n1 /etc/passwd | cut -d ':' -f 1,6
root:/root
head -n1 /etc/passwd | cut -d ':' --complement -f 2-4
root:root:/root:/bin/bash
head -n1 /etc/passwd | cut -d ':' -f 1-4 --output-delimiter='@'
root@x@0@0
split命令:文件拆分

split 大文件拆分成若干小的文件

split -l 按行来进行分割

split -b 按大小进行分割

ls
test.txt
split -l 20 test.txt ykw
#格式:-l 指定行数 要分割的文件 分割后的文件的前缀名
ls
test.txt  ykwaa  ykwab  ykwac
#分割后的文件 以指定的ykw为开头,排列方式后跟 aa ab ac ... az ba ... bz ...
文件合并

cat合并和paste合并

cat是上下合并;paste是左右合并

面试题
1.现在有一个日志文件,有5个G,能不能快速的打开

可以使用split进行拆分,split -l 按行拆分 split -b 按大小拆分,我推荐使用split -b 按大小拆分

2.cat合并和paste合并之间的区别?

cat是上下合并

paste是左右合并

3.统计当前主机的连接状态:

ss -antp | grep -v '^State' | cut -d " " -f 1 | sort | uniq -c 

正则表达式:由一类特殊字符以及文本字符所编写的一个模式,模式又来匹配文件当中内容(字符)。

校验我们输入的内容是否满足规定,格式、长度等等要求

主要用来匹配文本内容,命令的结果。

通配符:只能用于匹配文件名和目录名,不能匹配文件的内容和命令结果

grep -E 正则表达式

正则表达式:

基本正则表达式

元字符(字符匹配)

. 表示任意单个字符,也可以是一个汉字

\ 是转义符 表示恢复其本意

[ ] 匹配指定范围内的任意单个字符和数字

[^] 就是取反

^$ 匹配空行

^ 内容   表示以什么为开头

匹配字符出现的次数:

* 匹配前面的字符任意次,0次也可以  也叫贪婪模式 ,尽可能的匹配

.*  匹配前面的任意字符,至少要有1次,匹配所有

\? 匹配前面的字符0次或者1次,可有可无

\+ 匹配前面的字符,至少要出现一次

\{n\} 匹配前面的字符=n次,可以小于n,但是不能大于n,而且前面的字符必须要连续出现

\{m,n\}  匹配前面的字符至少m次,最多n次,必须是连接出现,超出的不在匹配范围

\{,n\}  匹配前面的字符最多N次

\{n,\}  匹配前面的字符最少N次

位置锚定

^ : 以什么为开头 (行首锚定)

$:以什么为结尾 (行尾锚定)

\<或者\b   词首锚定,匹配单词的左侧(连续的数字,字母,下划线都算单词内部)

\>或者\b   词尾锚定,用于匹配单词的右侧

^root$  整个一行只有这个单词

\broot\b 匹配整个单词   空格隔开也算整个单词

分组和逻辑关系

分组:    ( )

或者:  \ |

扩展正则表达式

1.使用正则表达式把下列邮箱全部匹配出来

vim d.txt
cicifireway@126.com
544564317@qq.com
CICIfireway@12a.com
aabbcc5566@163.com
cat d.txt | grep -E '[a-zA-Z0-9]+@[a-z0-9]+\.[com]+'

2.匹配下列电话

vim e.txt
cicifireway@126.com
544564317@qq.com
CICIfireway@12a.com
aabbcc5566@163.comcat e,txt | grep -E '[a-zA-Z0-9]+@[a-z0-9]+\.[com]+'

3.显示/etc/passwd中以sh结尾的行

cat /etc/passwd | egrep 'sh$'

4.查找/etc/inittab中含有“以s开头,并以d结尾的单词”模式的行

cat /etc/inittab | egrep '\<s[a-zA-Z]*d\>'

5.查找ifconfig命令结果中的1-255之间的整数

ifconfig | egrep '\b([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b'

6.在/etc/passwd中取出默认shell为bash的行

cat /etc/passwd | egrep 'bash$'
7.高亮显示passwd文件中冒号,及其两侧的字符
cat /etc/passwd | egrep '.?:{1,}.?'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/36951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop3:MapReduce中的Reduce Join和Map Join

一、概念说明 学过MySQL的都知道&#xff0c;join和left join 这里的join含义和MySQL的join含义一样 就是对两张表的数据&#xff0c;进行关联查询 Hadoop的MapReduce阶段&#xff0c;分为2个阶段 一个Map&#xff0c;一个Reduce 那么&#xff0c;join逻辑&#xff0c;就可以…

前端开发的工厂设计模式

在前端开发中&#xff0c;工厂设计模式&#xff08;Factory Pattern&#xff09;是一种非常有用的设计模式&#xff0c;能够帮助我们在创建对象时减少代码的重复性和复杂性。 一、工厂设计模式概述 工厂设计模式是一种创建型设计模式&#xff0c;主要目的是定义一个用于创建对…

2024年建筑八大员(资料员)考试题库,省心高效,轻松通过!

1.插入的图片无法显示&#xff0c;或者显示失真&#xff0c;正确做法是&#xff08;&#xff09;。 A.插人图片是应选中【自动调整图片大小】 B.在下拉【菜单】中选中【按单元格式大小】插入 C.在【格式】下拉中【图片】处打钩 D.在【属性】下拉中选中【工具显示】 答案&a…

两张图片怎样拼在一起?将两张图片拼在一起的几种方法介绍

两张图片怎样拼在一起&#xff1f;拼接两张图片是一种常见的编辑技巧&#xff0c;能够将不同的视觉元素融合成一个整体&#xff0c;从而创造出更加生动和丰富的图像效果。无论是为了设计创意作品、制作社交媒体内容&#xff0c;还是简单地为个人相册增添趣味&#xff0c;掌握如…

Element-UI 并排显示多个 disabled按钮的时候, 不生效问题解决

目录 Element-UI 并排显示多个 disabled按钮的时候&#xff0c; 不生效问题解决 解决方法&#xff1a; 运行结果&#xff1a; Element-UI 并排显示多个 disabled按钮的时候&#xff0c; 不生效问题解决 解决方法&#xff1a; Element-UI 并排显示多个 disabled按钮的时候&a…

spring boot 3.0.1多模块项目使用nacos动态配置

根pom文件增加&#xff0c;spring-cloud-alibaba包管理&#xff0c;注意版本spring-boot 3.0.3&#xff0c;spring-cloud-alibaba 2022.0.0.0-RC1 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0…

我的创作纪念日学期总结

&#x1f525;个人主页&#xff1a; Forcible Bug Maker &#x1f525;专栏&#xff1a; 关于博主 目录 &#x1f308;前言&#x1f525;我的期末考试&#x1f525;我的学期总结&#x1f525;对未来的展望&#x1f308;结语 &#x1f308;前言 本篇博客主要内容&#xff1a;博…

归并排序和计数排序

目录 1.归并排序1.1递归1.1基本思想1.2算法描述1.3画图解释1.4代码实现 1.2非递归 2.计数排序2.1基本思想2.2算法描述3.画图解释 1.归并排序 1.1递归 1.1基本思想 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法&#xff08;Divide and Conquer&#xf…

【C++】动态内存管理new和delete

文章目录 一、C的内存管理方式二、new和delete的用法1.操作内置类型2.操作自定义内置类型 三、new和delete的底层实现1.operator new和operator delete函数2.new和delete的实现原理 四、定位new表达式五、malloc/free和new/delete的区别 一、C的内存管理方式 之前在C语言的动态…

kafka(四)消息类型

一、同步消息 1、生产者 同步发送的意思就是&#xff0c;一条消息发送之后&#xff0c;会阻塞当前线程&#xff0c;直至返回 ack。 由于 send 方法返回的是一个 Future 对象&#xff0c;根据 Futrue 对象的特点&#xff0c;我们也可以实现同 步发送的效果&#xff0c;只需在调…

【数据结构】计数排序等排序

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

Ubuntu系统中创建桌面快捷方式和添加Favorites

一. Ubuntu系统中创建软件的桌面快捷方式 Ubuntu桌面创建某个软件的桌面快捷方式&#xff0c;一个直观的方法。 方法1. 在图像界面下&#xff0c;一层一层地打开文件目录软件快捷方式/usr/share/applications/ 方法2. 或者在终端运行$ nautilus /usr/share/applications/ …

MQ - RabbitMQ、SpringAMQP --学习笔记

什么是MQ&#xff1f; MQ 是消息队列&#xff08;Message Queue&#xff09;的缩写&#xff0c;它是一种应用程序间异步通信的技术。消息队列允许应用程序或服务间通过发送消息来交换数据&#xff0c;而不是直接调用对方&#xff0c;从而实现解耦、异步处理和负载均衡等目的。…

零成本打造精品宣传册

​随着互联网的发展&#xff0c;企业和个人对宣传册的需求日益增长&#xff0c;然而&#xff0c;高质量的宣传册制作往往需要不菲的成本。那么&#xff0c;如何零成本打造精品宣传册呢&#xff1f; 一、明确定位和目标群体 在制作宣传册之前&#xff0c;首先要明确其定位和目标…

qt pro文件常用配置

概述 记录一下常用的项目pro文件的一些常用配置 常用配置 QT core gui concurrent#添加concurrent并行处理模块 CONFIG windeployqt#打包部署&#xff0c;项目->构建步骤->Make参数 添加windeployqt&#xff0c;编译自动打包greaterThan(QT_MAJOR_VERSION, 4):…

Kafka入门到精通(三)-Kafka

Kafka简介 Kafka是由Apache软件基金会开发的一个开源流处理平台&#xff0c;由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者在网站中的所有动作流数据。 这种动作&#xff08;网页浏览&#xff0c;搜索和其他用户的行动&#xf…

JeecgBoot新建模块

引言 jeecg-boot设置了demo, system等默认模块。在二次开发中&#xff0c;常常需要进行模块扩展。比如新增一个订单模块或支付模块。如何准确的新增模块&#xff0c;在此文进行记录。 步骤 新建模块 在项目点击右键&#xff0c;新建模块。 如下图。 注意&#xff1a;报名需…

鸿蒙NEXT开发知识:工具常用命令—ohpm config

设置ohpm用户级配置项。 命令格式 ohpm config set <key> <value> ohpm config get <key> ohpm config delete <key> ohpm config list 说明 配置文件中信息以键值对<key> <value>形式存在。 功能描述 ohpm 从命令行和 .ohpmrc 文件中…

Linux命令----wc,uniq,sort的用法

1.wc的用法&#xff1a;wc 命令用于计算文件中的行数、单词数和字节数。 常用选项 -l&#xff1a;只显示行数-w&#xff1a;只显示单词数-c&#xff1a;只显示字节数-m&#xff1a;只显示字符数&#xff08;与 -c 类似&#xff0c;但处理多字节字符&#xff09;-L&#xff1a…

day22--77. 组合+216.组合总和III+17.电话号码的字母组合

一、77. 组合 题目链接&#xff1a;https://leetcode.cn/problems/combinations/ 文章讲解&#xff1a;https://programmercarl.com/0077.%E7%BB%84%E5%90%88.html 视频讲解&#xff1a;https://www.bilibili.com/video/BV1ti4y1L7cv 1.1 初见思路 组合问题用回溯学会使用剪…