当前位置: 首页 > 编程日记 > 正文

shell编程-正则表达式

1.正则表达式是什么

它主要用于字符串的模式分割,匹配,查找及替换操作。

2、正则表达式与通配符

正则表达式用来在文件中匹配符合条件的字符串,正则包含匹配。grep,awk,sed等命令可以支持正则表达式。

通配符用来匹配符合条件的文件名,通配符是完全匹配。ls ,find,cp这些命令不支持正则表达式,所以只能使用shell自己的通配符进行匹配了。

3.基础正则表达式

.相当于通配符的?

[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}

[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\

3.字符截取命令

cut [选项] 文件名

-f 列号:提取第几列

-d:分隔符:按照指定分隔符分割列,默认分隔符是tab键(制表符)

ID name gender Make
1   nyan     n       89
2   luke      l        87
3   mak      n       67

cut -f 1,3 student.txt

grep "/bin/bash" /etc/passwd | grep -v "root" | cut -f 1 -d ":"

printf  '输出类型输出格式' 输出内容

输出类型:

%ns:输出字符串。n是数字指代输出几个字符

%ni:输出整数。n是数字指代输出几个数

%m.nf:输出浮点数.m和n指代输出整数位和小数位位数

printf不支持管道符,所以printf $(cat 2.txt)

awk '条件1{动作1}条件2{动作2}...' 文件名

条件Pattern:

一般使用关系表达式作为条件:>,<>=,<=

动作Action:

格式化输出

流程控制语句

awk '{printf $2 "\t" $4 "\n"}' student.txt

BEGIN: awk 'BEGIN{print "test"}{print $2 "\t" $4}' student.txt

FS内置变量: cat /etc/passwd |grep /bin/bash |awk '{FS=":"}{print $1 "\t" $3}'

如果没有加BEGIN,则是先读取数据赋值给指定变量$n,再告诉FS是":"作为分隔符,此时已晚。

cat /etc/passwd |grep /bin/bash |awk 'BEGIN{FS=":"}{print $1 "\t" $3}'

sed字符替换命令

sed [选项] '[动作]' 文件名

-n:一般sed命令会把所有数据输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕。

-e:允许对输入数据应用多条sed命令编辑

-i:用sed修改结果直接修改读取数据的文件,而不是有屏幕输出。

动作:

a:追加,在当前行后添加一行或多行

c:行替换,用c后面的字符串替换源数据行

i:插入,在当前行插入一行或多行。

d:删除指定行

p:打印,输出指定的行

s:字符串替换,用一个字符串替换另外一一个字符串。格式为 "行范围s/旧字符串/新字符串/g"

sed -n '2p' student.txt

sed '2a 3 f v m' student.txt

sed '2,4d' student.txt

前面数字是行号

4.字符处理命令

sort [选项] 文件名

-f:忽略大小写

-n:以数值型进行排序,默认使用字符串型排序

-r:反向排序

-t:指定分隔符,默认是分隔符是制表符

-k n[,m]:按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)

sort -n -t ":" -k "3,3" /etc/passwd

wc:统计命令

wc [选项] 文件名

-l:只统计行数

-w:只统计单词数

-m:只统计字符数

转载于:https://www.cnblogs.com/Nyan-Workflow-FC/p/5667629.html

相关文章:

使用 CocoaPods 给微信集成 SDK 打印收发消息

推荐序 本文介绍的是一套逆向工具&#xff0c;可以在非越狱手机上给任意应用增加插件。在文末的示例中&#xff0c;作者拿微信举例&#xff0c;展示出在微信中打印收发消息的功能。 这套工具可以加快逆向开发的速度&#xff0c;其重签名思想也可以用于二次分发别人的应用。 其实…

数据库之子查询四(多重,表复制)

一、多重子查询 select teaID,teaName,age,sex,dept,professionfrom tteacherwhere dept(select dept from teaIDt103265)and profession(select professionfrom tteacherwhere teaIDt103265)这里的子查询就是为了从表中提取出有效信息参与外部查询二、create table 语句中子查…

Nagios的安装和基本配置(三:Nagios-Client的安装)

任务三、Nagios-Client的安装 3.1、关闭防火墙和selinux 注&#xff1a; #systemctl stop firewalld.service #systemctl disable firewalld.service #vi /etc/selinux/config 3.2、配置环境 #yum install gcc glibc-common -y #yum install gd gd-devel openssl openssl…

事件(待完成)

内容窗口 事件绑定​ 给整个浏览器 内容窗口区的事件绑定。 ​通过 document.documentElement或者document.body&#xff1f;似乎都可以。但最好是直接通过document document.addEventListener(mousemove,function () { });// 整个浏览器内容范围都将触发。拖动实现必用​ 转载…

iOS 模仿支付宝支付到账推送,播报钱数

最近申请了支付宝的二维码收钱码&#xff0c;其中支付宝有这么一个功能&#xff0c;就是&#xff0c;别人扫描你的二维码给你转账之后&#xff0c;收到钱会有一条语音推送&#xff0c;”支付宝到账 1000万“之类的推送消息&#xff0c;不管你的支付宝app有没有被杀死。 只要你的…

hdu - 4707 - Pet

题意&#xff1a;一棵N个结点(编号从0开始)的树&#xff0c;根结点为0&#xff0c;求到根结点的距离大于D的结点个数&#xff08;0 < 测试组数T < 10, 0<N<100000, 0<D<N&#xff09;。 题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid4707…

Nagios的安装和基本配置(四:调试验证 错误总结)

任务四、调试验证 4.1、验证连通性 在/usr/local/Nagios/etc/nrpe.cfg文件中server的ip地址 #vi /usr/local/Nagios/etc/nrpe.cfg #重启nrpe #pkill nrpe #netstat -Intp #/usr/local/Nagios/bin/nrpe -d -c /usr/local/Nagios/etc/nrpe.cfg #在server主机做验证 #cd /…

hitTest和pointInside方法

hittest方法 就是用来寻找最合适的view当一个事件传递给一个控件&#xff0c;就会调用这个控件的hitTest方法点击了白色的view&#xff1a; 触摸事件 -> UIApplication -> UIWindow 调用 [UIWindow hitTest] -> 白色view [WhteView hitTest] 实验1: 定义 BaseView&…

Github上的PHP资源汇总大全

依赖管理 ——用于依赖管理的包和框架 Composer/Packagist : 一个包和依赖管理器 Composer Installers: 一个多框架Composer库安装器 Pickle: 可以在任意平台上安装PHP扩展包 依赖管理的附加部分 ——其它依赖管理的相关工具 Satis : 静态的Composer库生成器 Composition: 一个…

UIButton长按事件

添加长按事件1 - (void)viewDidLoad2 {3 [super viewDidLoad];4 //Do any additional setup after loading the view, typically from a nib.5 6 UIButton *aBtn[UIButton buttonWithType:UIButtonTypeRoundedRect];7 [aBtn setFrame:CGRectMake(0, 10, 60, 60…

Hadoop集群搭建(一:集群安装及网络环境配置)

实验目的及要求 完成VMware workstations安装&#xff0c;会应用相关操作&#xff1b;完成虚拟机中Linux CentOS 7操作系统安装&#xff1b;完成静态网络地址的配置&#xff0c;所有主机的网络能够正常使用&#xff0c;相互之间能够正常连接&#xff1b;完成主机名配置&#x…

QQ音乐API分析记录

我一直是QQ音乐的用户&#xff0c;最近想做一个应用&#xff0c;想用QQ音乐的API&#xff0c;搜索了很久无果&#xff0c;于是就自己分析QQ音乐的API。 前不久发现QQ音乐出了网页版的&#xff0c;是Flash的&#xff0c;但是&#xff0c;我用iPhone打开这个链接的时候&#xff0…

Vision 圖像識別框架的使用

阅读 137收藏 102017-10-18原文链接&#xff1a;www.itread01.comGoogle无人车之父、MIT/斯坦福/耶鲁专家带你进入无人驾驶之域 http://cn.udacity.com/course/intro-to-self-driving-cars--nd113 本文為CocoaChina網友 品位生活 投稿 北京時間2017.6.6日淩晨1點&#xff0c;新…

Jmeter性能测试 入门

Jmeter性能测试 入门 原文:Jmeter性能测试 入门Jmeter是一款优秀的开源测试工具&#xff0c; 是每个资深测试工程师&#xff0c;必须掌握的测试工具&#xff0c;熟练使用Jmeter能大大提高工作效率。 熟练使用Jmeter后&#xff0c; 能用Jmeter搞定的事情&#xff0c;你就不会使用…

Hadoop集群搭建(二:集群主机间免密登录配置)

实验目的及要求&#xff1a; 静态网络地址配置&#xff1b;主机名的配置&#xff1b;防火墙的配置&#xff0c;使平台相关软件的常用端口能够远程正常访问&#xff1b;主机地址映射的配置&#xff0c;使所有主机能够通过主机名相互正常访问&#xff1b;免密码登录的配置&#…

你真的会用 CocoaPods 吗?

CocoaPods 可以说是 iOS 开发应用最广泛的包管理工具&#xff0c;本篇文章主要介绍 CocoaPods 的第三方库是怎样从网络集成到我们本地的项目当中&#xff0c;也是制作私有库、开源库和 iOS 项目组件化的一个知识铺垫。 让我们从一张图片开始&#xff1a; CocoaPods 工作流程 …

【spring 5】AOP:spring中对于AOP的的实现

在前两篇博客中&#xff0c;介绍了AOP实现的基础&#xff1a;静态代理和动态代理&#xff0c;这篇博客介绍spring中AOP的实现。 一、采用Annotation方式 首先引入jar包&#xff1a;aspectjrt.jar && aspectweaver.jar applicationContext配置文件&#xff1a; <span…

通过BeanShell获取UUID并将参数传递给Jmeter

有些HTTPS请求报文的报文体中包含由客户端生成的UUID&#xff0c;在用Jmeter做接口自动化测试的时候&#xff0c;因为越过了客户端&#xff0c;直接向服务器端发送报文&#xff0c;所以&#xff0c;需要在Jmeter中通过beanshell获取UUID&#xff0c;并能将参数传递给Jmeter&…

Hadoop集群搭建(四:Zookeeper环境安装)

实验 目的 要求 目的&#xff1a; 1、掌握在完全分布模式的整合平台中Zookeeper的完全分布模式的安装 要求&#xff1a; 完成Zookeeper的完全分布农事的安装&#xff1b;Zookeeper服务能够正常启动和连接&#xff1b;Zookeeper控制台能够正常进入&#xff1b;Zookeeper控制台命…

史上第二走心的 iOS11-Drag Drop 教程

原文链接&#xff1a;www.jianshu.com只需完成个人实名注册&#xff0c;即可获得腾讯云免费套餐&#xff01;云服务器CVM、云数据库 MYSQL、文件存储 CFS.....应有尽有&#xff01;https://cloud.tencent.com/act/free 话不多说&#xff0c;先上效果图 普通view拖拽效果 TableV…

指针的各式定义

1&#xff0c;一个整形数&#xff1a; int a; 2&#xff0c;一个指向整形数的指针&#xff1a; int *a; 3&#xff0c;一个指向指针的指针&#xff0c;它指向的指针指向一个整形数&#xff1a; int **a; 4&#xff0c;一个有10个整形数的数组&#xff1a; int a[10]; 5&#…

AS 400 常用命令

转自&#xff1a;http://blog.chinaunix.net/uid-22375044-id-3049793.html 一、命令技巧 命令构成&#xff1a; CRT* (Creat) 创建 WRK* (Work With) 操作 RMV* (Remove) 去除 DSP* (Display) 显示 ADD* (Add) 添加 CHG* (Change) 改变 DLT* (Delete) 删除 CFG* (Config) 配置…

Hadoop集群搭建(五:Hadoop HA集群模式的安装)

实验 目的 要求 目的&#xff1a; 1、Hadoop的高可用完全分布模式的安装和验证 要求&#xff1a; 完成Hadoop的高可用完全分布模式的安装&#xff1b;Hadoop的相关服务进程能够正常的启动&#xff1b;HDFS能够正常的使用&#xff1b;MapReduce示例程序能够正常运行&#xff1b…

iOS开发业界毒瘤 Hook

原文地址 为什么有这篇博文 不知道何时开始iOS面试开始流行起来询问什么是 Runtime&#xff0c;于是 iOSer 一听 Runtime 总是就提起 MethodSwizzling&#xff0c;开口闭口就是黑科技。但其实如果读者留意过C语言的 Hook 原理其实会发现所谓的钩子都是框架或者语言的设计者预留…

常用rsync命令操作梳理

作为一个运维工程师&#xff0c;经常可能会面对几十台、几百台甚至上千台服务器&#xff0c;除了批量操作外&#xff0c;环境同步、数据同步也是必不可少的技能。说到“同步”&#xff0c;不得不提的利器就是rsync。rsync不但可以在本机进行文件同步&#xff0c;也可以作为远程…

Word英文字符间距太大 中英文输入切换都不行

在Word中输入文字时会遇到这样的情况&#xff0c;就是说中文字符的间距是正常的&#xff0c;但是英文字符间的间距却不正常&#xff0c;总是太宽了&#xff0c;如图&#xff1a; 。 而且这时切换中英文输入都没用&#xff0c;Word的字体设置也正常。后来上网查了下&#xff0c;…

Hadoop集群搭建(六:HBase的安装配置)

实验 目的 要求 目的&#xff1a; 1、HBase的高可用完全分布模式的安装和验证 要求&#xff1a; 完成HBase的高可用完全分布模式的安装&#xff1b;HBase的相关服务进程能够正常的启动&#xff1b;HBase控制台能够正常使用&#xff1b;表创建、数据查询等数据库操作能够正常…

架构师的第一阶段:准备做(Pre-Architecture)

上节说到&#xff0c;做任何事情都可以分为三个阶段&#xff1a;准备做、做、做好。本文&#xff0c;就将进入第一个阶段&#xff0c;准备做阶段。 Pre-Architecture&#xff1a;准备架构 准备架构阶段&#xff0c;最最重要的是弄清楚要做什么东西&#xff0c;即掌握用户需求。…

iOS动画系列之八:使用CAShapeLayer绘画动态流量图

这篇文章通过使用CAShapeLayer和UIBezierPath来画出一个动态显示剩余流量的小动画。 最终实现的效果如下&#xff1a; Paste_Image.png 动态效果图&#xff1a; shapeLayerAni.gif 1. CAShapeLayer 实际中&#xff0c;能够用CALayer完成的任务是比较少的&#xff0c;如果使用这…

hiho_1139_二分+bfs搜索

题目 给定N个点和M条边&#xff0c;从点1出发&#xff0c;到达点T。寻找路径上边的个数小于等于K的路径&#xff0c;求出所有满足条件的路径中最长边长度的最小值。 题目链接:二分 最小化最大值&#xff0c;考虑采用二分搜索。对所有的边长进行排序&#xff0c;二分&#x…