正则表达式与通配符

  • 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式
  • 通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些命令不支持政策表达式,所以只能使用shell自己的通配符来进行匹配了

通配符

  • 匹配任意内容

    ? 匹配任意一个内容

    [] 匹配中扣号中的一个字符

正则表达式

字符截取命令

1 cut字段提取命令
cut [选项]文件名
选项:
-f 列号: 提取第几列
-d 分隔符: 按照指定分隔符分割列 cut -f 2 student.txt cut -f 2,4 student.txt cut -d ":" -f 1,3 /etc/passwd
2 printf命令
printf '输出类型输出格式' 输出内容

输出类型:

 %ns : 输出字符串。n是数字只带输出几个字符
%ni : 输出整数。n是数字指代输出几个数字
%m.nf: 输出浮点数。m和n是数字,指代输出的整数位和小数位 如 %8.2f代表共输出8位数,其中2位是小数,6位是整数
3 awk命令
awk `条件1{动作1} 条件2{动作2}...` 文件名

条件 (pattern):
一般使用关系表达式作为条件
x>10判断变量 x是否大于10
x>=10大于等于
x<=10小于等于
动作(action)
格式化输出
流程控制语句 awk `{print $2 "\t" $4 "\n"}` student.txt df -h | awk `{print $1 "\t" $3}`
4 sed命令

sed的是流编程器的缩写。它是文本处理中不可获取的工具。ser主要是用来将数据进行选取、替换、删除、新增的命令。

sed [选项]`[动作]` 文件名
选项:
-n 一般sed命令会把所有数据都输出到屏幕,如果加入此选择则只会把经过sed命令处理的行输出到屏幕
-e 允许对输入数据应用多条sed命令编辑
-i 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出 动作:
a : 追加,当前行后添加一行或多行
c :行替换,用c后面的字符串替换原数据行
i :插入,在当期行前插入一行或多行。d:删除,删除指定的行
p :打印,输出指定的行
s : 字符串替换,用一个字符串替换另外一个字符串。格式为"行范围s/旧字符串/新字符串/g" sed '2p' student.txt 查看文件的第二行 sed -n '2p' student.txt 字符串替换 sed 's/旧字串/新字串/g' 文件名 sed '3s/60/99/g' student.txt
在第三行中,把60替换成90
sed -i '3s/60/99/g' student.txt
在第三行中,把60替换成90并直接写入文件 sed -e 's/fengj//g;s/cang/g' student.txt 同时把'fengj' 和 'cang' 替换为空

sort命令与wc命令

####### 1 排序命令sort

sort[选项] 文件名

-f 忽略大小写

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

-r 反向排序

-t 执行分隔符,默认是分隔符是制表符

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

shell编程值之正则表达式与字符截取(6)的更多相关文章

  1. 第10章 Shell编程(2)_字符截取命令

    2. 字符截取命令 2.1 cut字段提取命令(grep提取行,cut提取列) (1)cut命令:#cut [选项] 文件名 选项: -f 列号:提取第几列: -d 分隔符:按照指定分隔符分割列,默认 ...

  2. shell编程基础(五): 正则表达式及其使用

    正则表达式 1.前情提要 以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义.其实grep还可以找出符合某个模式(Pattern)的一类字符串.例如找出所有符合xxxx ...

  3. 大数据Shell编程 之 常用正则表达式

    使用man grep查看grep的帮助文档,有如下内容: 可以看出,正则表达式由三类,分别是 基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 B ...

  4. 第10章 Shell编程(3)_字符处理命令和条件判断

    3. 字符处理命令 3.1 排序命令:sort (1)sort命令:#sort [选项] 文件名 选项 作用 -f 忽略大小写 -n 以数值型进行排序,默认使用字符串型排序 -r 反向排序 -t 指定 ...

  5. shell编程值之shell流程控制(7)

    条件判断式 1 按照文件类型判断(常用类型) 测试类型 作用 -d 文件 判断该文件是否存在,并且是否为目录文件(是目录文件为真) -e 文件 判断该文件是否存在(存在为真) -f 文件 判断该文件是 ...

  6. Linux学习——shell编程之正则表达式和字符处理命令

    shell编程之正则表达式 一 正则表达式 1 什么是正则表达式 正则表达式用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分隔.匹配.查找及替换操作. 2 shell编程之正则表达式 ...

  7. Linux基础学习(11)--Shell编程

    第十一章——Shell编程 一.基础正则表达式 1.正则表达式与通配符(*,?,[ ]): 2.基础正则表达式: 二.字符截取命令 1.cut字段提取命令: 空格分割时,不知道空格有多少个,无法分割行 ...

  8. 第10章 Shell编程(1)_正则表达式

    1. 基础的正则表达式 1.1 正则表达式与通配符 (1)正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式. (2)通配符用来匹配符合条件的 ...

  9. 第5天(半天)【shell编程初步、grep及正则表达式】

    第5天(半天)[shell编程初步.grep及正则表达式] shell编程初步(01)_recv shell脚本:文本文件 #!:/bin/bash #!:/usr/bin/python #!:/us ...

随机推荐

  1. 算法-java代码实现快速排序

    快速排序 对于一个int数组,请编写一个快速排序算法,对数组元素排序. 给定一个int数组A及数组的大小n,请返回排序后的数组. 测试样例: [1,2,3,5,2,3],6 [1,2,2,3,3,5] ...

  2. Spark学习笔记3(IDEA编写scala代码并打包上传集群运行)

    Spark学习笔记3 IDEA编写scala代码并打包上传集群运行 我们在IDEA上的maven项目已经搭建完成了,现在可以写一个简单的spark代码并且打成jar包 上传至集群,来检验一下我们的sp ...

  3. Access是什么?

    一种使用简单的数据库软件,非常实用! 是微软的一个小型数据库,是Microsoft office 中的一个组件. Access数据库能够进行数据表设计.可视查询设计.SQL查询语言.窗体设计.报表设计 ...

  4. Uva 1599 Ideal Path - 双向BFS

    题目连接和描述以后再补 这题思路很简单但还真没少折腾,前后修改提交了七八次才AC...(也说明自己有多菜了).. 注意问题: 1.看清楚原题的输入输出要求,刚了书上的中文题目直接开撸,以为输入输出都是 ...

  5. extends和implements的区别

    extends表示继承 implements表示抽象类的接口

  6. Java Servlet API中文说明文档

    Java Servlet API中文说明文档 目 录 1.... Servet资料 1.1      绪言 1.2      谁需要读这份文档 1.3      Java Servlet API的组成 ...

  7. ASP.NETCore的Kestrel服务器

    什么是Kestrel服务器 Kestrel是开源的(GitHub提供的源代码),事件驱动的异步I / O服务器,用于在任何平台上托管ASP.NET应用程序.这是一个监听服务器和一个命令行界面.您将侦听 ...

  8. ASP.net core 2.0.0 中 asp.net identity 2.0.0 的基本使用(二)—启用用户管理

    修改和启用默认的用户账户管理和角色管理 一.修改Models目录中的ApplicationUser.cs类文件,如下 namespace xxxx.Models{    //将应用程序用户的属性添加到 ...

  9. 使用Python查询JMX

    一.介绍 我们知道 java 项目中的 JMX 接口信息是十分有用的,我们可以提取这些信息来分析或告警.但是 JMX 的 API 只在 java 中实现,因此,找到一个 Python 代码调用 Jav ...

  10. JavaScript事件高级绑定

    js 进行事件绑定,其中一种不常见的写法是: <div id="father" style="width: 300px; height: 200px; backgr ...