Linux---Shell(文本处理工具 和 Shell脚本)

article/2025/11/7 18:36:20

目录

一、文本处理工具

1.1 grep

1.1.1 匹配行首

1.1.2 设置大小写

1.1.3 转义字符

1.2 sed

 1.2.1 追加文件

1.2.2 删除文本

1.3 awk

1.3.1 关系表达式

二、Shell脚本

2.1 结构判断

2.2 循环结构

2.3 break 和 continue

2.4 Shell脚本的基本元素与执行方式


一、文本处理工具

1.1 grep

        grep是文本搜索命令,会从一个或多个文件中搜索与指定匹配模式的文本行,并打印匹配结果,一般格式为:   grep 【选项】【模式】【文件名】

模式是匹配规则,模式后的文件名用于指定搜索目标,文件名可以有多个,之间用空格隔开,模式前选项用于对模式进行补充说明

常用选项 

ee478fbaed5248c4ae285d26c04238f9.png

grep与正则表达式配合使用,来达到搜索功能 

1.1.1 匹配行首

        正则表达式的元字符 “ ^ "表示匹配行首,使用 grep 搜索文本时使用 匹配行首字符进行行首的匹配

例如:grep  -c ^$ /etc/yum.conf (查找yum.conf文件中有多少空白行)

 7f69d91109274b8a9a66f91c1b5321e4.png

1.1.2 设置大小写

        使用 i 选项可以使用gerp命令不区分大小写,使用符号 [ ] 命令也可实现这一功能

例如:grep '[Tt] [Hh][Ii][Ss]'yum.conf (不区分大小写查找“this”字符串)

2adcc37cb3c64e7585985d3c8e375760.png

1.1.3 转义字符

        若匹配的目标字符串中含有元字符,则需要使用转义字符 " \ " 屏蔽它们,常见的元字符有 " . " , " - " , 需要使用 "  \ " 去进行转义

编写文件 test1

abcdef
---
123456

grep ' \ - \{ 3 \ } '  test(查找文件 test1中‘---’)

 50436f735a8746149341b46043b6b602.png

1.2 sed

        sed 是 一个非交互式的文本处理信息,可以对文本文件和标准输入进行编辑,标准输入有 键盘 、文件重定向、 字符串、 变量等

使用环境:编辑命令复杂,文件过大、文本处理需要执行多个函数时使用该命令

优点:一次性处理所有编辑任务,提高效率,节约时间

格式:sed [选项] ' sed编辑命令 ’ 输入文件 (sed编辑命令要用单括号括起来)

常用选项:

42474bbca982416bbb553da66bd3de68.png

编辑命令:

2844c1896c5d4551bbedc10d66bb3304.png

例如:sed ' = ' test1(显示行号输出文件test1)

39051d198e8441dda8a1d95cd7df5953.png

 1.2.1 追加文件

        sed的编辑命令a\ 用于追加文本,它可以指定一行或多行文本追加到指定位置以 匹配模式 " /pattern/ "或行号形式给出,如果不指定,则默认放到每一行后面

例如:sed ' /123456/a\add a new line!!! ' test1 (在文件内容后追加新文本 add a new line!!!)

fe0f9ded03d0462ba8408795a857913b.png

  追加文本脚本实现:

vi add.sh

/For rain/a\ we add a new line!!!

以上只是在标准输中对输出结果进行了追加,并没有讲这些新文本添加到原始文件中,如果要修改文件,需要使用 -i 选项

sed -f add.sh -i poem

 137d98dec39d4100a149d5bc2a6d1d2a.png

1.2.2 删除文本

        删除某一行,使用编辑命令d

sed '/we add new line!!!/d' test1 

 6c18d8a2c25549d79e68c84d75a67d20.png

#! bin/sed -f

/For rain/a\ 

we add a new line!!!

add.sh中没有指定命令解释器,需要调用相应的命令来执行脚本

sed -f add.sh test1

在 add.sh 脚本文件中(第一行) 指定命令解释器

#! /bin/sed -f 

c1fab3ef2ace4e8d8acf1572dd26f007.png

1.3 awk

 awk在读取分析数据时,从头到尾 逐行扫描文件内容 ,寻找指定模式匹配的行,并对匹配的文本进行处理,awk的工作流程分为 模式匹配 和 处理过程 两步, 两种特殊模式分为 BEGIN 和 END

 awk中的匹配模式主要包括 关系表达式、正则表达式、混合模式、BEGIN、END

模式匹配:

1.如果没有指定匹配模式,则默认匹配所有数据

处理数据:

1.匹配则处理数据

2.不匹配则不做任何处理

3.未指定处理方式,则输出

两种特殊模式:

BEGIN:放置在读取数据之前执行,标志数据读取即将开始

END:放置在读取数据之后执行,标志数据读取已经完毕

命令基本格式:awk [选项] pattern {actions} 文件

pattern是匹配模式,actions 是要执行的操作,文本符合规则时,pattern 和 actions都是可选的,必须选择一个:

pattern 是 匹配模式(可选) 省略pattern则对所有文本执行actions操作

actions 是 执行的操作(可选) 省略actions则将匹配结果打印到终端

常用命令

50d0cb5d5c874617b6466b10f9e57b01.png

1.3.1 关系表达式

        awk允许用户使用关系表达式作为匹配模式,当文件行满足关系表达式时,会执行相应操作

cea5f6cb54954c49899ce43e4ab15d68.png

 #! bin/bash

result = ` awk ' $2 > 80 {print} ' scores `

echo "$result" 

变量$2 表示引用第二列的值, {print} 表示打印匹配成功的文本行

(变量$0:引用所有列的值        变量$NF:引用最后一列的值)

二、Shell脚本

2.1 结构判断

2.2 循环结构

2.3 break 和 continue

2.4 Shell脚本的基本元素与执行方式


http://chatgpt.dhexx.cn/article/RaQnBgxo.shtml

相关文章

shell

shell 什么是shell: 现在我们使用的操作系统(Windows、Mac OS、Android、iOS等)都是带图形界面的,简单直观,容易上手,对专业用户(程序员、网管等)和普通用户(家庭主妇、…

shell的几种常用工具

最近在学习shell脚本语言,在学习的过程中了解了关于shell的几种常用工具,就总结了一下。 1、sort 功能:顾名思义,sort是对文本进行排序操作的。原则:sort将文件的每一行作为一个单位,相互比较&#xff0c…

Linux学习 -- Shell的工具

cutsedawksort Shell提供的工具可以帮助我们更快的完成需求操作。 一、cut 功能描述: cut的工作就是"剪",具体是用来在文件中负责剪切数据。cut 命令从文件的每一行剪切字节、字符和字段并将这些文字、字符和字段输出。 基本用法: …

快速入门Shell脚本(5)——Shell的这些工具你都知道了吗?

上一篇博客已经给大家讲了计较复杂的操作(常用的函数操作)。 本篇博客,给讲一下shell的工具,学会写工具会让你的面试加分的偶。(喜欢shell脚本的可以关注专栏) 1.Shell中的cut 1.1介绍 cut的工作就是“剪…

Shell常用命令与工具

学习一些在编写Shell时的常用命令或工具及使用技巧。有人说Shell脚本是命令堆积的一个文件,按顺序去执行。还有人说想学好Shell脚本,要把Linux上各种常见的命令或工具掌握了,这些说法都没错。由于Shell语言本身在语法结构上比较简单&#xff…

SHELL工具推荐

随着个人使用还会继续更新,目前就只有两款。 1.Xshell 业界较常见的一款经典的shell命令行软件,配套有单独的ftp软件。 界面比较简洁,命令好像全是单色。有开源的免费版本可以下载。 2.MobaXterm 界面易读性高很多,对于warning、…

shell脚本之工具

在学习了shell脚本的基本语法,命令,符号之后,接下来要看的就是shell脚本使用的所有工具了。 在shell脚本中,工具的使用简化了所要编写的代码。接下来就介绍几个shell下经常使用的工具。 1、sort sort工具的常用语法就是将文件的每一行作为一个单位,相互比较,比较原则是从…

shell之常用工具(cut、sort、uniq、tr)

文章目录 一、列截取工具-cut1、cut概述2、常用选项3、案例演示 二、排序工具-sort1、sort概述2、常用选项3、案例演示 三、去重工具-uniq1、uniq概述2、uniq的常用选项3、案例演示 四、修改工具-tr1、 tr概述2、tr的常用选项3、案例演示 五、面试题六、总结 一、列截取工具-cu…

JDK配置环境变量+eclipse安装使用(保姆级教程)

一、下载JDK 访问Oracle官网下载最新版JDKJava Downloads | Oracle,也可点击此处下载我准备的安装包。 以Windows系统举例,选择Windows下的第二个(第一个为压缩包,第二个为安装程序,第三个是Windows Installee的数据包…

eclipse android环境搭建,Eclipse Android开发环境搭建教程

Eclipse Android开发环境搭建教程是本文要介绍的内容,主要是来了解并学习Eclipse Android环境搭建的过程,具体关于Eclipse Android内容的详解来看本文。 Eclipse Android开发准备: 1、javasdk 2、eclipsehttp://www.eclipse.org/downloads/ 3…

AWS Toolkit for Eclipse环境配置

最近,实验室的工作中涉及到了AWS,拟采用Java来实现。现在来整理一下相关配置过程。 配置过程 首先,我这里使用的是Eclipse Oxygen版本。AWS Toolkit for Eclipse的安装过程比较简单,在Eclipse的菜单栏点击“Help->Install New…

eclipse配置java环境_java环境搭建(Eclipse)

1.打开Eclipse官网 2.单击Download下方的灰色字Download Packages 3.单机图片中Eclipse IDE for Enterprise Java Developers 中的对应选项(windows 64-bit) 4.跳出窗口后点击橙色Download 5.解压下载下来的解压包 6.打开解压后文件夹中的eclipse.exe 7.如果出现该问题贼需要搭…

java web(eclipse)搭建环境

开发环境搭建: 一、搭建jdk环境:(配置环境变量,JAVA_HOME,PATH,CLASSPATH,JRE_HOME) a) 参考链接:https://jingyan.baidu.com/article/1974b28959d87ff4b0f7745c.html 二、下载解压eclipse:绿色…

eclipse的安装与环境配置

一,eclipse下载 地址:https://www.eclipse.org/downloads/ 一般浏览器都有翻译功能 二、有32位和64位的版本根据自己的需求下载,选下载的选下载量最多的下载。 1.下载完成后是压缩包解压 就可以直接使用 这样子eclipse就下载好了,接下来就…

Eclipse配置Android开发环境

Eclipse配置Android开发环境 环境变量的配置测试环境是否配置完毕 ADT插件的安装ADT的下载在线安装(未试成功)离线安装 ADT的使用 eclipse新建Android项目xml文件无法预览页面 在配置好环境的eclipse中安装Android SDK(Software Development …

Eclipse配置python环境全步骤

安装方法参考这一博主的文章,一开始选用第二、三种,都安装失败 eclipse配置python开发环境_如何在Eclipse中配置python开发环境_weixin_39827036的博客-CSDN博客 后面用第一种方法,还是在 Window-preferences 下没有找到 PyDev 然后看到这…

配置Eclipse环境变量

不管是eclipse还是MyEclipse 都需要配置环境变量,MyEclipse不配置好环境变量是不能用激活破解工具的 方法: (右键)我的电脑-(右键)“属性”-高级-环境变量,弹出Windows的“环境变量…

eclipse搭建mybatis的环境

1.首先创建一个web工程 2.导入mybatis的jar包 3.创建一个xxx.properties文件里面写 (1)我这里是mysql 8 如果是mysql5,driver就不一样 jdbc.drivercom.mysql.cj.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/mybbs?serverTimezoneAs…

Eclipse中配置python环境

1.首先将Eclipse下载完成 2.下载python模块,链接为(https://sourceforge.net/projects/pydev/files/pydev/)选择一个最新版本即可 3.之后得到python模块文件如下图,将两个文件夹复制一下 4.将两个文件夹内容复制到Eclipse的文件夹…

eclipse环境的搭建以及JDK的安装步骤详细

java开发环境:eclipse 可以从这里下载 链接:https://pan.baidu.com/s/1qNVUTB1-Wy4Tvbzvo3YxLA 提取码:ap5v 安装步骤如下: 从上链接获取压缩包下载到电脑之后,解压,此时的eclipse是打不开的,需…