【Linux】shell编程——基础正则表达式、字符截取命令、字符处理命令

一、正则表达式与通配符

1.1 正则表达式与通配符简介

  正则表达式:用于在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。
  通配符(* ?[]):用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些命令不支持正则表达式,只能使用shell自己的通配符来进行匹配。
    *:代表任意字符(多个字符)
    ?:代表任意一个字符
    []:[]的其中任意一个字符

1.2 基础正则表达式

在这里插入图片描述
   * 代表前一个字符匹配0次或多次:
在这里插入图片描述
  . 代表除换行符以外的任意一个字符
在这里插入图片描述
  ^代表匹配行首,$匹配行尾
在这里插入图片描述

  [ ]代表匹配中括号中指定的任意一个字符,只匹配一个;[^]匹配除中括号的字符以外的任意一个字符
在这里插入图片描述
  \ 转义符
在这里插入图片描述
  \ {n \ }代表前面的字符恰好出现n次的行;\ {n,\ }代表前面的字符最少出现n次的行
   \ {n,m \ }代表前面的字符最少出现n次最多出现m次的行
在这里插入图片描述

二、字符截取命令

2.1 列截取命令cut

  cut 命令是提取列,grep命令是提取行
  语法:cut 【选项】文件名
  选项:
    -f 列号:提取第几列
    -d分隔符:按照指定分隔符分割列

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

2.2 格式化输出命令

  printf是格式化输出命令,不同于echo
  语法:printf ‘输出类型、输出格式’ 输出内容
  输出类型:
    %ns:输出字符串,n是数字指带输出几个字符
    %ni:输出整数。n是数字指带输出几个数字
    %m.nf:输出浮点数。m,n是数字,指带输出的总位数和小数位数。例%8.2代表输出8位数,2位是小数,6位是整数
  输出格式:

在这里插入图片描述

在这里插入图片描述

2.3 列截取命令awk

  在awk命令的输出中支持print和printf命令:
    print:print命令会在每个输出后自动加入一个换行符(linux默认没有print命令)
    printf:printf是标准输出命令,并不会自动加入换行符,如果需要换行,需要手动加入换行符
  常用cut来进行列提取,但是如果列之间用空格输出会提取不出来,因此用awk命令
  语法:awk ‘条件1{动作1} 条件2{动作2} 条件3{动作3}…’ 文件名
    条件:一般使用关系表达式
    动作:格式化输出、流程控制语句

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

2.4 sed命令

  sed是一种几乎包括在所有unix平台(包括linux)的轻量级流编辑器。(vim也是编辑器但是只能编辑文件)。sed主要用来将数据进行选取、替换、删除、新增的命令。sed不仅可以操作文件,还可以利用管道符对命令的结果进行操作
  语法:sed [选项] ‘[动作]’ 文件名
    选项:
    -n:一般sed命令会把所有数据都输出到屏幕,此选项则只会把经过sed命令处理的行输出到屏幕。
    -e:允许对输入数据应用多条sed命令编辑
    -i:用sed的修改结果,直接修改读取数据的文件,而不是由屏幕输出

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

三、字符处理命令

3.1 排序命令sort

  语法:sort [选项] 文件名
    选项:
    -f:忽略大小写
    -n:以数值型进行排序,默认使用字符串型排序
    -r:反向排序
    -t:指定分隔符,默认分隔符是制表符
    -k n[,m]:按照指定的字段范围排序。从第n字段开始,m字段结束

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

3.2 统计命令wc

  语法:wc [选项] 文件名
    选项:
    - l:只统计行数
    -w:只统计单词数
    -m:只统计字符数

在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值