当前位置: 首页 > article >正文

笔记--(Shell脚本01)、正则表达式与文本处理器

bash

bash是一个命令处理器,运行在文本窗口中,并能执行用户直接输入的命令。
bash还能从文件中读取Linux命令,这种文件就称之为脚本。
bash支持通配符、管道符、命令替换、条件判断等逻辑控制语句。

bash特性

命令行展开
[root@localhost ~] echo {0..10}
0 1 2 3 4 5 6 7 8 9 10
#二的倍数
[root@localhost ~] echo {0..10..2}
0 2 4 6 8 10

命令别名
#给systemctl设置别名为abc 并关闭防火墙
alias 
[root@localhost ~] alias abc=systemctl
[root@localhost ~] abc stop firewalld
#取消别名
unalias
[root@localhost ~] unalias abc
[root@localhost ~] abc stop firewalld
-bash: abc: 未找到命令

正则表达式概述

正则表达式定义又称为正规表达式,常规表达式
使用字符串来描述、匹配一系列符合某个规则的字符串
正则表达式组成:
普通字符:大小写字母、数字、标点符号及一些其他符号
元字符:在正规表示中具有特殊意义的专用字符

表达式层次
基本正则表达式

在这里插入图片描述

扩展正则表达式

在这里插入图片描述

grep命令格式

参数选项解释说明
-v排除匹配结果
-n显示匹配行与行号
-i不区分大小写
-c只统计匹配的行数
-E使用egrep命令
–color=auto为grep过滤结果添加颜色
-w只匹配过滤的单词
-o只输出匹配内容

sed命令格式

#语法
sed [选项] [sed内置命令字符] [输入文件]
sed选项
参数选项解释
-n取消默认sed的输出,常与sed内置命令p一起使用
-i直接将修改结果写入文件,不用-i sed修改的是内存数据
-e多次编辑,不需要管道符号了
-r支持正则扩展
sed常用的内置命令
sed的内置命令字符解释
aappend,对文本追加,在指定行后面添加一行/多行文本
dDelete,删除匹配行
iinsert,表示插入文本,在指定行前添加一行/多行文本
pPrint,打印匹配行内容,通常p与-n一起使用
s/正则/替换内容/g匹配正则内容,然后替换内容
sed匹配范围
范围解释
空地址全文处理
单地址指定文件某一行
/pattern/被模式匹配到的每一行
范围区间10,20十到二十行,10,+5第10行向下5行,/pattern1/,/pattern2/
步长12,表示1、3、5、7、9行,22两个步长,表示2、4、6、8、10、偶数行

在这里插入图片描述

awk命令

功能强大的编辑工具
有强大的文本格式化的能力
无交互的情况下实现复杂的文本操作
awk更是一门编程语言,支持条件判断、数组、循环等功能

awk语法
awk [可选参数] [模式] {动作} 文件/数据
awk内置变量

FS:指定每行文本的字段分隔符,缺省为空格或制表位

NF:当前处理的行的字段个数$NF:表示最后一列 $(NF-1):表示倒数第二列

NR:当前处理的行的行号

$0:当前处理的行的整行内容

$n:当前处理行的第n个字段(第n列)

在这里插入图片描述


http://www.kler.cn/a/404556.html

相关文章:

  • Windows 10使用智能卡SmartCard返回scard_e_no_service错误
  • nginx 配置lua执行shell脚本
  • conda 创建环境失败故障解决记录
  • 基于Lora通讯加STM32空气质量检测WIFI通讯-分享
  • 高级 SQL 技巧讲解
  • BOM的详细讲解
  • 零基础Java第二十二期:异常(二)
  • 【Nginx从入门到精通】05-安装部署-虚拟机不能上网简单排错
  • 大语言模型与图结构的融合: 推荐系统中的新兴范式
  • 基于LLama_factory的Qwen2.5大模型的微调笔记
  • Scala中的集合复习(1)
  • 2024中国报业技术年会 | 文盾信息聚焦AI大模型的内容安全风控实践
  • Easyexcel(3-文件导出)
  • 鸿蒙多线程开发——线程间数据通信对象02
  • 用Python爬虫“偷窥”1688商品详情:一场数据的奇妙冒险
  • Scala的Array多维数组
  • 介绍一下strncmp(c基础)
  • 大学课程项目中的记忆深刻 Bug —— 一次意外的数组越界
  • 【Linux】系统调用和库函数汇总整理
  • Ubuntu安装sublime Tex
  • FreeRTOS消息队列实验与出现的问题
  • uni-app 修改复选框checkbox选中后背景和字体颜色
  • redis实现计数器功能
  • 如何取消分词搜索
  • GPT1.0 和 GPT2.0 的联系与区别
  • RabbitMQ实现异步下单与退单