当前位置: 首页 > news >正文

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,}.?'

相关文章:

tr、cut、split、grep -E

目录 tr命令&#xff1a;替换和删除 cut命令&#xff1a;快速裁剪 split命令&#xff1a;文件拆分 文件合并 面试题 1.现在有一个日志文件&#xff0c;有5个G&#xff0c;能不能快速的打开 2.cat合并和paste合并之间的区别&#xff1f; 3.统计当前主机的连接状态&#…...

《分析模式》漫谈08-单继承不是“唯一继承”

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 《分析模式》第2章这一段&#xff1a; 划线处的single inheritance&#xff0c;2004中译本的翻译&#xff1a; 翻译为“单继承”&#xff0c;是正确的。 2020中译本的翻译&#xff1a…...

c++字典

在C中&#xff0c;“字典”通常指的是std::map或std::unordered_map&#xff0c;它们是标准库中提供的关联容器&#xff0c;用于存储键值对。以下是一些常见的操作示例&#xff0c;包括插入、访问、删除和遍历元素。 使用 std::map std::map 是一种有序的关联容器&#xff0c;键…...

rga_mm: RGA_MMU unsupported Memory larger than 4G!解决

目录 报错完整log如下:解决方案:报错完整log如下: [ 3668.824164] rga_mm: RGA_MMU unsupported Memory larger than 4G! [ 3668.824305] rga_mm: scheduler core[4] unsupported mm_flag[0x0]! [ 3668.824320] rga_mm: rga_mm_map_buffer map dma_buf err...

构建个人文件上传服务:Python Flask实现上传和下载完整指南

介绍 在本教程中&#xff0c;我们将学习如何使用Python Flask框架将文件上传到服务器&#xff0c;并使用SQLite数据库来跟踪上传的文件。我们将提供后端代码和一个示例项目的Git链接&#xff0c;以便您可以轻松地跟随本教程。 准备工作 首先&#xff0c;您需要安装Python和F…...

瓦罗兰特新赛季更新资讯 瓦罗兰特新赛季免费加速器

瓦罗兰特新赛季来喽&#xff0c;这是一款由拳头开发的免费第一人称射击游戏&#xff0c;游戏凭借其独特的玩法和丰富的英雄选择吸引了大量玩家。 我们可以在游戏中选择自己喜欢的角色出场与敌人进行对战&#xff0c;而且每一个角色都有自己独特的道具以及技能&#xff0c;使用好…...

希尔排序的实现

引言 排序在我们生活中十分常见&#xff0c;无论是购物软件中的商品推荐还是名次、排名都与排序算法息息相关。希尔排序是排序中较快的一种&#xff0c;而希尔排序实现的基础是插入排序。 排序的实现 插入排序&#xff08;以升序为例&#xff09; 插入排序的原理是从第二个数…...

使用Python selenium爬虫领英数据,并进行AI岗位数据挖掘

随着OpenAI大火&#xff0c;从事AI开发的人趋之若鹜&#xff0c;这次使用Python selenium抓取了领英上几万条岗位薪资数据&#xff0c;并使用Pandas、matplotlib、seaborn等库进行可视化探索分析。 但领英设置了一些反爬措施&#xff0c;对IP进行限制封禁&#xff0c;因此会用到…...

如何在Android应用程序中实现高效的图片加载和缓存机制。

在Android应用程序中实现高效的图片加载和缓存机制 一、技术难点 在Android应用程序中实现高效的图片加载和缓存机制&#xff0c;主要面临以下几个技术难点&#xff1a; 内存管理&#xff1a;Android设备的内存资源有限&#xff0c;如果加载大量高清图片而不进行适当的内存管…...

【机器学习项目实战(二)】基于朴素贝叶斯的中文垃圾短信分类

完整代码、数据集和相应的报告 链接已经放在了正文最下方, 供大家参考学习 摘要 ​ 本文探讨了中文垃圾短信分类的问题,通过收集实际数据集,运用多种机器学习算法进行分类,并对比了不同算法在垃圾短信分类任务上的性能。本研究旨在提高中文垃圾短信的识别准确率,为构建更…...

当用户需求不详细时,如何有效应对

在项目沟通时&#xff0c;用户对需求说明不详细&#xff0c;可能是由于多种原因。以下是一些可能的原因及如何应对这些问题的建议&#xff1a; 1. 用户不完全理解自己的需求 原因&#xff1a; 用户对技术细节不了解&#xff0c;不知道如何具体描述需求。 用户对项目的全局和…...

最新AI智能聊天对话问答系统源码(图文搭建部署教程)+AI绘画,文生图,TTS语音识别输入,文档分析

一、人工智能语言模型和AI绘画在多个领域广泛应用 人工智能语言模型和AI绘画在多个领域都有广泛的应用。以下是一些它们的主要用处&#xff1a; 人工智能语言模型 内容生成 写作辅助&#xff1a;帮助撰写文章、博客、报告、剧本等。 代码生成&#xff1a;自动生成或补全代码&…...

[图解]SysML和EA建模住宅安全系统-02-现有运营领域-块定义图

1 00:00:00,840 --> 00:00:02,440 首先我们来看画在哪里 2 00:00:02,570 --> 00:00:08,310 你看&#xff0c;这是图的类型&#xff0c;图里面内容 3 00:00:08,320 --> 00:00:10,780 这是元素类型 4 00:00:10,790 --> 00:00:14,900 这是位置&#xff0c;哪个包 …...

【vuejs】首次页面加载时触发那些声明周期钩子函数

1. 首次页面加载触发的钩子 在Vue.js中&#xff0c;页面或组件的首次加载会触发一系列预定义的生命周期钩子函数&#xff0c;这些钩子函数按照特定的顺序执行&#xff0c;允许开发者在组件的不同阶段执行代码。以下是首次页面加载时触发的钩子及其作用&#xff1a; 2.1 befor…...

adb热更新

模拟器连接AndroidStudio 解决:adb server version (36) doesnt match this client (40); killing... 1.G:\ProgramFils\android-sdk\platform-tools adb --version 2.H:\yeshen\Nox\bin adb --version 3.把G:\ProgramFils\android-sdk\platform-…...

Nuxt 的路由结构系统(七)

基本路由配置 在 Nuxt.js 中&#xff0c;每个 .vue 文件在 pages/ 目录下都会自动成为一个路由。文件名决定了路由的路径。例如&#xff1a; pages/ |-- index.vue # 映射到根路径 / |-- about.vue # 映射到路径 /about |-- contact.vue # 映射到路径 /conta…...

不使用AMap.DistrictSearch,通过poi数据绘制省市县区块

个人申请高德地图key时无法使用AMap.DistrictSearch&#xff0c;可以通过poi数据绘制省市县区块 1.进入POI数据网站找到需要的省市县&#xff0c;下载对应的GeoJson文件 &#xff0c;此处为poi数据网站链接 2.​ 处理geoJson数据&#xff0c;可以直接新建json文件&#xff0c;…...

vue+webpack子应用嵌入乾坤框架

首先&#xff01;不建议用vite&#xff0c;改了两天&#xff0c;无果。 乾坤本就不支持vite&#xff0c;后续要改插件改配置追加前缀&#xff0c;乾坤只能挂载基础节点&#xff0c;但是静态资源以及接口都挂载不上&#xff0c;或许有实现办法&#xff0c;但时间节点很紧&#…...

Oracle中常用内置函数

一、字符串函数 CONCAT(s1, s2)&#xff1a;连接两个字符串s1和s2。 SELECT CONCAT(Hello, World) FROM DUAL-- 结果&#xff1a;Hello World --或者使用 || 操作符 SELECT Hello || World FROM DUAL -- 结果&#xff1a;Hello World INITCAP(s)&#xff1a;将字符串s…...

餐饮冷库安全守护神:可燃气体报警器检定的科学性与有效性

随着餐饮业的快速发展&#xff0c;冷库成为储存食材、保证食品质量的重要场所。 然而&#xff0c;由于冷库环境的特殊性&#xff0c;如密封性强、温度低、湿度大等&#xff0c;一旦冷库内发生可燃气体泄露&#xff0c;后果将不堪设想。因此&#xff0c;在餐饮冷库中安装并合理…...

AI相册搜索效率提升300%?Gemini驱动的Google Photos智能检索全解析,含实测对比数据与隐私边界警告

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI相册搜索效率提升300%&#xff1f;Gemini驱动的Google Photos智能检索全解析&#xff0c;含实测对比数据与隐私边界警告 Google Photos 近期将 Gemini Pro 1.5 深度集成至其搜索后端&#xff0c;支持…...

PS4游戏存档管理终极指南:如何使用Apollo工具轻松备份和修改游戏进度

PS4游戏存档管理终极指南&#xff1a;如何使用Apollo工具轻松备份和修改游戏进度 【免费下载链接】apollo-ps4 Apollo Save Tool (PS4) 项目地址: https://gitcode.com/gh_mirrors/ap/apollo-ps4 在PlayStation 4游戏体验中&#xff0c;游戏存档管理一直是个让玩家头疼的…...

给IPC相机调图像,别再瞎调了!一份保姆级的ISP线性模式调试顺序图(附避坑要点)

IPC相机图像调试实战指南&#xff1a;从线性模式到专业级画质优化 刚接触IPC相机图像调试的工程师们&#xff0c;常常会陷入参数迷宫——面对AE、AWB、Gamma、3DNR等数十个模块&#xff0c;该从何处入手&#xff1f;调试顺序的错误可能导致反复返工&#xff0c;甚至影响最终成像…...

LynxPrompt Action:GitHub Actions 实现 AI 配置中心化与自动化管理

1. 项目概述&#xff1a;为什么我们需要一个AI配置的“中央仓库”&#xff1f; 如果你和我一样&#xff0c;日常开发中同时用着Cursor、Claude Code、GitHub Copilot&#xff0c;甚至还在尝试Windsurf和Aider&#xff0c;那你一定遇到过这个头疼的问题&#xff1a;每个工具的配…...

OpenAccess十年:EDA互操作性标准如何重塑芯片设计流程

1. 从愿景到现实&#xff1a;OpenAccess十年之路的深度复盘十年前&#xff0c;也就是2002年的12月&#xff0c;当Si2&#xff08;硅集成倡议组织&#xff09;首次向联盟成员发布OpenAccess 2.0时&#xff0c;恐怕没有多少人能预料到&#xff0c;这个源于半导体巨头内部需求的“…...

保姆级排错:Keil里J-Link选项神秘消失?手把手教你定位GD32E23等ARM-M23内核芯片的调试器兼容问题

当Keil调试器选项消失时&#xff1a;深度解析ARM-M23内核芯片的调试兼容性问题 第一次在Keil的Debug配置界面发现J-Link选项神秘消失时&#xff0c;我盯着屏幕愣了几秒钟——前一天明明还能正常使用的工具链&#xff0c;怎么突然就"罢工"了&#xff1f;这种看似"…...

Laravel RSS聚合器larafeed:现代化内容聚合后端解决方案

1. 项目概述&#xff1a;一个为Laravel打造的现代化RSS聚合器如果你正在用Laravel构建一个内容聚合平台、新闻阅读器&#xff0c;或者只是想为自己的个人博客添加一个“我最近在读什么”的订阅墙&#xff0c;那么你很可能需要处理RSS或Atom源。手动解析这些XML格式的源、处理缓…...

Midjourney V6 acrylic paint提示词工程:从模糊描述到精准输出的12个专业级Prompt模板(含色彩层厚/笔触硬度/画布纹理三重控制)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney V6丙烯画风格的核心演进与底层渲染机制 Midjourney V6 对丙烯画&#xff08;Acrylic Painting&#xff09;风格的建模已脱离早期依赖纹理叠加与后处理滤镜的粗粒度模拟&#xff0c;转向基于…...

AAAI‘2026 模型记错了,检索也救不了?KG+TruthfulRAG想解决这个死结

背景介绍 近年来&#xff0c;大语言模型&#xff08;LLM&#xff09;在生成与理解任务上表现突出&#xff0c;但其内部“参数化知识”具有静态、滞后的特点&#xff1a; 面对时效性知识、专业知识、隐私知识等&#xff0c;模型可能缺乏覆盖&#xff1b;即便检索增强生成&#…...

鸿蒙 App 的 Task + State 双核心架构

子玥酱 &#xff08;掘金 / 知乎 / CSDN / 简书 同名&#xff09; 大家好&#xff0c;我是 子玥酱&#xff0c;一名长期深耕在一线的前端程序媛 &#x1f469;‍&#x1f4bb;。曾就职于多家知名互联网大厂&#xff0c;目前在某国企负责前端软件研发相关工作&#xff0c;主要聚…...