Linux:split命令、paste命令、ecal命令和正则表达式

news2025/1/3 5:36:59

Linux:split命令、paste命令、ecal命令和正则表达式

  • 一、split命令
  • 二、paste命令
  • 三、eval命令
  • 四、正则表达式
  • 五、实验与应用

一、split命令

  • split命令—Linux下将一个大的文件拆分成若干小文件
  • 语法格式
split 选项 参数 原始文件 拆分后文件名前缀
  • 常用选项
选项说明
-l以行数拆分
-b以大小拆分
split -l 50 file file1 #把file文件50行分为一个文件,file1为新的文件前缀,后面为aa,ab,ac等等#
cat -n file1aa         #查看file1aa文件并显示行数#

二、paste命令

  • paste命令—合并文件的列
  • 语法格式
paste 选项 file1 file2
  • 常用选项
选项说明
-d指定分隔符划分
-s把列转换成行输出
paste a b           #合并a文件和b文件#
a		1
b		2
c		3
...		...
g		7
paste -d ' ' a b    #’-d‘指定分隔符,默认制表符分割#
paste -s -d ’ ‘ a b #’-s'把列转化成行输出#

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

三、eval命令

  • eval命令—命令字前加上eval时,shell会在执行命令之前扫描他两次。eval命令将会首先扫描命令进行所有的置换,然后再执行命令,该命令适用于那些一次扫描无法实现其功能的变量,该命令对变量进行两次扫描
echo "hello world" > file
myfile="cat file"
echo $myfile
cat file
eval $myfile
hello world

在这里插入图片描述

a=100
b=a
eval echo \$$b
100
eval echo $b=50
echo $a
50

在这里插入图片描述

四、正则表达式

  • 正则表达式—通常用于判断语句中,用来检查某一字符串是否满足某一格式

  • 正则表达式是由普通字符与元字符组成

  • 普通字符包括大小写字母、数字、标点符号及一些其他符号

  • 元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前南的字符或表达式)在目标对象中的出现模式

  • 基础正则表达式常见元字符(支持的工具:grep、egrep、sed、awk)

基础元字符说明
\转义字符,用于取消特殊符号的含义,例:\!、\n、$等
^匹配字符串开始的位置,例:^a、^the、^#、^[a-z]
$匹配字符串结束的位置,例:word$,^$匹配空行
.匹配除\n之外的任意的一个字符,例:go.d、g…d
*匹配前面子表达式0次或者多次,例:goo*d、go.*d
[list]匹配list列表中的一个字符,例:go[ola]d,[abc]、[a-z]、[a-z0-9]、[0-9]匹配任意一位数字
[^list]匹配任意非list列表中的一个字符,例:[^0-9]、[^A-Z0-9]、[^a-z]匹配任意一位非小写字母
\{n\}匹配前面的子表达式n次,例:go{2}d、'[0-9]{2}'匹配两位数字
\{n,\}匹配前面的子表达式不少于n次,例:go{2,}d、'[0-9]{2,}'匹配两位及两位以上数字
\{n,m\}匹配前面的子表达式n到m次,例:go{2,3}d、'[0-9]{2,3}'匹配两位到三位数字
\w匹配包括下划线的任何单词字符
\W匹配任何非单词字符。等价于“[^A-Za-z0-9_]”
\d匹配一个数字字符
\D匹配一个非数字字符。等价于 [^0-9]
\s空白符
\S非空白符
  • 注:egrep、awk使用{n}、{n,}、{n,m}匹配时“{}”前不用加“\”
  • 扩展正则表达式元字符:(支持的工具:egrep、awk)grep -E ,sed -r
扩展元字符说明
+匹配前面子表达式1次及以上,例:go+d,将匹配至少一个o,如god、good、goood等
?匹配前面子表达式0次或者1次,例:go?d,将匹配gd或god
()将括号中的字符串作为一个整体,例1:g(oo)+d,将匹配oo整体1次以上,如good、gooood等
|以或的方式匹配字符串,例:g(oo|la)d,将匹配good或者glad

五、实验与应用

  • 匹配输出规定的电话号码
    1、匹配025开头的区号
    2、区号与后面的号码以"-"或者 空格 或者为 空
    3、电话号码要以 5 或者 8 开头的八位数
egrep "^(025)[- ]?[58][0-9]{7}$" test1.txt

在这里插入图片描述

  • 匹配规定格式的邮箱
    用户名@子域名.[二级域名].顶级域
    1、用户名@:长度要求在6-18位,任意大小写英文,任意数字,除了@符号和空格以外的其他任意符号字符,开头只能是“_”或者字母
    2、子域名.[二级域名]:长度任意,符号只能包含“-、_、.”
    3.顶级域名:长度在2-5,任意大小写英文
egrep "^[a-zA-Z][^@ ]{5,17}@[0-9a-zA-Z\-\._]+\.[a-zA-Z]{2,5}$" test2.txt

在这里插入图片描述

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

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

相关文章

Claude不能用了?我来帮你

前几天,我在《不需要等待列表,也不用魔法上网的Claude,能否比肩ChatGPT?》一文中,介绍了ChatGPT的同门师兄Claude的注册使用教程。许多同学按照我的教程,很快就无痛使用上了类似ChatGPT的服务。 403 Forbid…

WGCNA | 不止一个组的WGCNA怎么分析嘞!?~(二)(共识网络分析-第二步-构建网络与模块-分步法)

1写在前面 不知道各位最近过得怎么样,昨天去修了脚🦶,感觉自己马上就要迈入油腻中年人的行列了。🥲 不过说实话,还是挺舒服的,值得再去一次。😅 接着更一下WGCNA的教程吧,还是值得大…

TypeScript-基础类型

目录 介绍 布尔值 数字 字符串 数组 元组 Tuple 枚举 Unknown Any Void Null 和 Undefined Never Object 类型断言 关于 Number, String, Boolean, Symbol 和 Object 介绍 在TypeScript中,我们能够处理一些数据单元,例如:数字…

【JavaWeb】-- HTML、CSS、JavaScript

文章目录 HTML1.基本介绍2.快速入门3.基础标签3.1 标题标签3.2 hr标签3.3 字体标签3.4 加粗、斜体、下划线标签3.5 居中标签 4.图片、音频、视频标签5.超链接标签6.列表标签7.表格标签8.布局标签9.表单标签9.1 表单标签概述9.2 form标签属性9.3 代码演示 10.表单项标签 CSS1.概…

【Prompting】ChatGPT Prompt Engineering开发指南(5)

ChatGPT Prompt Engineering开发指南:Transforming 翻译通用翻译器音调转换格式转换拼写检查/语法检查内容来源 在本教程中,我们将探讨如何使用大型语言模型来进行文本转换任务,例如语言翻译,拼写和语法检查,音调调整和…

怎么画邻接表?不用邻接矩阵也能画?

目录 一、有向图的邻接表 二、无向图的邻接表 一、有向图的邻接表 最简单粗暴的方式就是把某个顶点发出的箭头指向的顶点全作为单个结点连接到此顶点的后面。结点数等于边数。 按正常思路的话,是一种递归遍历。 1.选一个点作为出发点。比如选一个v0。 2.从第一出…

Kali-linux控制Meterpreter

Meterpreter是Metasploit框架中的一个杀手锏,通常作为利用漏洞后的攻击载荷所使用,攻击载荷在触发漏洞后能够返回给用户一个控制通道。当使用Armitage、MSFCLI或MSFCONSOLE获取到目标系统上的一个Meterpreter连接时,用户必须使用Meterpreter传…

【C++】leetcode力扣 剑指 Offer 题解

文章预览: 剑指 Offer 03. 数组中重复的数字剑指 Offer 04. 二维数组中的查找剑指 Offer 05. 替换空格剑指 Offer 06. 从尾到头打印链表剑指 Offer 07. 重建二叉树剑指 Offer 09. 用两个栈实现队列剑指 Offer 10- I. 斐波那契数列剑指 Offer 10- II. 青蛙跳台阶问题…

大模型训练数据多样性的重要性

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

图形编程周刊(2023.001)

图形编程周刊(2023.001) key: webgpu webgl 3d webgis three.js cesium.js 这里是力博荣(Libaro)三维可视化带来的 图形编程周刊, 争取每周五发布。 更新源位置: https://gitee.com/lianming/graphics-programming-weekly/blob/master/2023001/2023001.md 发现的代码 1、th…

少儿编程 中国电子学会图形化编程等级考试Scratch编程三级真题解析(判断题)2023年3月

2023年3月scratch编程等级考试三级真题 判断题(共10题,每题2分,共20分) 26、单击如图所示积木,将生成一个介于1.5和2.5之间的一位小数 答案:错 考点分析:考查随机数积木的使用,随机生成小数的时候,生成的小数位不止一位,所以错误 27、为新建变量命名时,不区分大小…

红黑树封装map和set

文章目录 红黑树封装map和set1. 改良红黑树1.1 改良后的节点1.2 改良后的类分别添加仿函数代码 3. 封装map和set3.1 set3.2 map 3. 迭代器3.1 begin 和 end3.2 operator()和operator--()3.3 const迭代器set的迭代器map的迭代器 4. map的operator[]的重载5. 完整代码实现5.1 RBT…

美团二面:聊聊ConcurrentHashMap的存储流程

👏作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主📕系列专栏:Java设计模式、Spring源码系列、Netty源码系列、Kafka源码系列、JUC源码…

手把手教你彻底卸载MySQL

❤写在前面 ❤博客主页:努力的小鳴人 ❤系列专栏:MySQL8.0基础学习 ❤欢迎小伙伴们,点赞👍关注🔎收藏🍔一起学习! ❤如有错误的地方,还请小伙伴们指正!🌹 ​ …

抖音SEO矩阵系统源码开发搭建(一)

抖音SEI矩阵系统源码开发,需要遵循一下步骤: 1. 确定需求和功能:明确系统的主要目标和需要实现的功能,包括关键词研究、短视频制作、外链建设、数据分析、账号设置优化等方面。 2. 设计系统架构:根据需求和功能确定系…

Golang每日一练(leetDay0068) 二叉树右视图、岛屿数量

目录 199. 二叉树的右视图 Binarytree Right Side View 🌟🌟 200. 岛屿数量 Number-of-islands 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日…

【C++】图解类和对象(中)

类和对象(中) 文章目录 类和对象(中)一、类的6个默认成员函数二、构造函数1.定义2.特性3.对特性的理解及几点注意事项 二、析构函数总结 一、类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的…

只需6步,就能让你的 React +Tailwind.css站点实现暗黑功能

欢迎回来,开始一次新的编码之旅吧!今天,我们将进入神秘的世界,探索如何在你的React.js网站中使用Tailwind.css实现暗黑模式。Tailwind.css 是你编码工具中的强大助手,结合React.js使用,你可以创造出令人惊叹…

Swoft中使用Consul微服务

目录 Swoft中接入Consul Swoft服务限流 Swoft服务熔断和降级 在之前我写的一篇内容:PHP中接入consul,实现微服务的注册发现和配置中心_浮尘笔记的博客-CSDN博客 中,使用ThinkPHP6.0框架接入了微服务Consul,并且留下了一个彩蛋 …

【K8s】Helm

文章目录 一、Helm介绍1、背景2、介绍3、核心概念4、chart的基本结构5、helm官网 二、部署Helm1、安装helm客户端2、安装Tiller 三、常用指令1、仓库相关 helm repo2、chart相关 四、入门案例1、构建第一个chart2、将chart包发布到Repository3、在 Kubernetes 中部署应用4、升级…