Linux从入门到进阶全集——【第十四集:Shell编程】
- 正则表达式(与通配符)
- 正则表达式:匹配字符串,属于包含匹配[只要包含匹配条件就行],grep,awk,sed等命令支持正则表达式
- 通配符(*,?,[]):匹配文件名,属于完全匹配[必须是完全匹配条件才行],ls,find,cp等支持通配符,而不支持正则表达式
- 所有正则表达式:详情见百度百科关于正则表达式解释:https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215

重点注意1:使用{n},{n,},{n,m}这两个正则表达式时,匹配字符串需要引号引起来,并且使用转义字符【\】将花括号【{ }】转义,例如:grep "fo\{2,\}" install.log 就能匹配install.log文件中foooo的字符串。
- 重点注意2:【*】的理解:匹配前面字符0次或者任意多次,如果任意字符串的正则例如:a*(这个表示匹配所有内容),而不是匹配包含a字符的所有字符串所在行。因为a*表示a匹配0次,也就是不包含a,所以,即便不包含a的字符行会被列出来,同时,a*还表示a匹配任意多次,也就是包含a所在字符行。所以,综合而言,它匹配所有内容,这个正则表达式实际应用上没有意义。如果要匹配包含一个a字符串的行,可以这样写:aa*,这样就能匹配所有包含一个a字符串的行。
- 重点注意3:凡是表中出现的字符都是正则表达式符号,如果需要作为字符串匹配条件,这是用转义字符【\】进行转义,例如:匹配【.】这个字符,就要使用grep \. xxx.txt 这种表达式,表示匹配包含【.】这个字符的字符行,而不是任意字符。
- 字符截取命令。
- cut字段提取【列】命令
- cut -f 2,4 xx.txt
- cut -d ":" -f 2,3 xx.txt
- 例如:cut -d " " -f 1 install.log 这个命令就能截取空格分割的第一列
- 缺陷:默认分隔符是制表符tab符,要么使用-d参数指定分隔符,而对于一些不合规则的分隔符则无法正常分割
- printf命令
- awk命令
- sed命令
- cut字段提取【列】命令
- 字符处理命令
- 条件判断
- 流程控制
Linux从入门到进阶全集——【第十四集:Shell编程】的更多相关文章
- Linux从入门到进阶全集——【第八集:软件包管理:rpm、tar、yum】
1,对Linux下软件的了解 源码包:未编译,要编译安装. 二进制包:已编译,可直接安装. 2,centos和ubuntu下的软件包对比: [centos]rpm文件手动安装,使用rpm指令 ...
- Linux从入门到进阶全集——【第十四集:Shell基础命令】
1,Shell就是命令行执行器 2,作用:将外层引用程序的例如ls ll等命令进行解释成01表示的二进制代码给内核,从而让硬件执行:硬件的执行结果返回给shell,shell解释成我们能看得懂的代码返 ...
- Linux从入门到进阶全集——【第十四集:Shell编程-export命令】
参考: https://www.cnblogs.com/guojun-junguo/p/9855356.html 功能说明:设置或显示环境变量. 语 法:export [-fnp][变量名称]=[变量 ...
- Linux从入门到进阶全集——【第十五集:安装apache服务器】
1,查看是否安装了httpd软件包以及其依赖:rpm -qa httpd(rpm -qa | grep httpd),如果没有输出任何信息,表示你没有安装httpd软件包,如果有输出一般是已经安装了: ...
- Linux Shell系列教程之(十四) Shell Select教程
本文是Linux Shell系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句case ...
- (转)Linux Shell系列教程之(十四) Shell Select教程
本文属于<Linux Shell 系列教程>文章系列,该系列共包括以下 18 部分: Linux Shell系列教程之(一)Shell简介 Linux Shell系列教程之(二)第一个Sh ...
- 如约而至,Java 10 正式发布! Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十四)Redis缓存正确的使用姿势 努力的孩子运气不会太差,跌宕的人生定当更加精彩 优先队列详解(转载)
如约而至,Java 10 正式发布! 3 月 20 日,Oracle 宣布 Java 10 正式发布. 官方已提供下载:http://www.oracle.com/technetwork/java ...
- SpringBoot进阶教程(六十四)注解大全
在Spring1.x时代,还没出现注解,需要大量xml配置文件并在内部编写大量bean标签.Java5推出新特性annotation,为spring的更新奠定了基础.从Spring 2.X开始spri ...
- 爱,死亡和机器人 第十四集 齐马蓝 中文字幕(Python处理utf8文件获取想要的内容)
处理代码 file = "a.srt" fi = open(file, mode='r') a = fi.readline() i = 1 while len(str(a)) != ...
随机推荐
- Linux下配置yum源为阿里云或网易的详解
一.yum源概述 yum需要一个yum库,也就是yum源.默认情况下,CentOS就有一个yum源.在/etc/yum.repos.d/目录下有一些默认的配置文件(可以将这些文件移到/opt下,或者直 ...
- 同一个tomcat部署多个项目导致启动失败
内容描述在同一个tomcat部署多个打包成war包的项目导致启动失败,报错如下: 报错信息Error starting ApplicationContext. To display the condi ...
- JSP和后台交互时的乱码问题
在Servlet或者是拦截器里面添加下面的语句: request.setCharacterEncoding("utf-8"); response.setCharacterEncod ...
- 文件共享服务器share
文件共享服务器:(类似于FTP服务器) 1.创建共享:文件夹右键属性--共享--开启共享--设置共享名--设置共享权限(建议设置为everyone完全控制,然后具体的权限需求在ntfs权限中设置即可) ...
- 移除文件(git rm)
git rm`命令会把文件从已跟踪列表(及暂存区)中移除,并且移除把文件从工作目录中移除,这样下一次你就不会在未跟踪文件列表中看到这些文件了. 如果你只是简单的把文件从工作目录移除,而没有使用git ...
- Base64 加密解密
/// <summary> /// 编码 Base64 /// </summary> /// <param name="code"></p ...
- 《NFC开发实战详解》笔记
地点:30教 5楼 男厕对面 * 时间:下午三点 * 天气:中雨 * 状态:3 * ******************************************************* ...
- Numpy 多维数组简介
 NumPy是一个功能强大的Python库,主要用于对多维数组执行计算.NumPy这个词来源于两个单词-- Numerical和Python.NumPy提供了大量的库函数和操作,可以帮助程序员轻松地 ...
- node命令行工具—cf-cli
音乐分享: 钢心 - <龙王> 初喜<冠军>后喜<龙王> (PS:听一次钢心乐队的演出后采访才知道 “龙王”隐喻的是一起喝酒的老铁....) ——————————— ...
- jsp多模块相同数据提交到后台之数据处理
最近在写一个java多模块表单提交,起初想的只是一个简单的form表单提交,写的时候发现不是真简单.多个相同类型数据提交到后台接收的问题很困难. 于是,和人进行深入的讨论,感觉j以json的格式提交时 ...