Shell脚本编程基础(五)

五种常用文本工具和Crontab调度工具(二)

  1. cut: 用于从文本中提取特定的字段或列。
  2. grep: 用于搜索文本中的特定模式。
  3. awk: 用于处理和分析文本。
  4. sed: 用于文本替换和编辑。
  5. sort: 用于对文本行进行排序。

Crontab

Crontab 是用于定时任务调度的工具,可以用来定期执行脚本或命令。通过设定特定的时间表达式,来控制任务的执行频率。

这两类工具在功能和用途上有很大不同,但都在命令行环境中非常常用。

4. grep 命令

grep 是用于搜索文本的命令行工具,可以在文件中查找匹配的字符串。

语法
grep [选项] PATTERN [文件...]

常用选项

  • -i:忽略大小写。
  • -r-R:递归搜索目录。
  • -v:反转匹配,显示不匹配的行。
  • -n:显示匹配行的行号。
  • -c:统计匹配的行数。
  • -l:仅显示包含匹配的文件名。
  • -e:指定多个模式。

常用示例

1. 在文件中查找匹配的行
grep "pattern" filename.txt
2. 忽略大小写查找
grep -i "pattern" filename.txt
3. 在多个文件中查找
grep "pattern" file1.txt file2.txt
4. 递归查找目录中的文件
grep -r "pattern" /path/to/directory
5. 显示匹配行的行号
grep -n "pattern" filename.txt
6. 统计匹配的行数
grep -c "pattern" filename.txt
7. 反转匹配,显示未匹配的行
grep -v "pattern" filename.txt
8. 查找多个模式
grep -e "pattern1" -e "pattern2" filename.txt

5. sort 命令

常用选项:
  • -t :指定分隔符
  • -n:按数值排序
  • -r:以相反的顺序(降序)排序
  • -k :指定以第几列进行排序

案例

文件 data.txt,内容如下:

apple:5:2.1
banana:2:1.9
cherry:8:3.4
date:3:2.5
elderberry:7:1.8

需求

我们希望按照第二列的数值进行升序排列。

命令

指定以第二列进行排序:

sort -t : -nk 2 data.txt

结果

排序后的输出应为:

banana:2:1.9
date:3:2.5
apple:5:2.1
elderberry:7:1.8
cherry:8:3.4

命令

按照第三列降序排序:

sort -t : -nrk 3 data.txt

结果

降序排序后的输出为:

cherry:8:3.4
date:3:2.5
apple:5:2.1
banana:2:1.9
elderberry:7:1.8

6. crontab 命令

基本用法

crontab 用于定期调度任务,在指定时间自动执行脚本或命令。

编辑 Crontab

编辑当前用户的 crontab 文件:

crontab -e
查看 Crontab

查看当前用户的 crontab 任务:

crontab -l
删除 Crontab

删除当前用户的所有 crontab 任务:

crontab -r

说明:执行此命令后,用户的所有定时任务将被删除,小心使用,因为删除后无法撤销,如果需要删除一个特定的任务:

  1. 使用 crontab -e 打开编辑器。

    crontab -e
    
  2. 在编辑器中找到并删除你想要移除的那一行。

  3. 保存并退出编辑器。

Crontab 文件格式

每行表示一个任务,格式如下:

* * * * * command-to-execute

每个 * 的位置依次表示:分钟、小时、日、月、星期。

时间字段详解

  • 分钟(0-59)
  • 小时(0-23)
  • (1-31)
  • (1-12)
  • 星期(0-7,0 和 7 都表示星期日)

特殊符号

  • *:表示任何时间。
  • ,:表示分隔多个值。
  • -:表示一个范围。
  • /:表示步进。

常用示例

1. 每天凌晨2点运行脚本
0 2 * * * /path/to/script.sh
2. 每小时的第15分钟运行
15 * * * * /path/to/script.sh
3. 每周一上午8点运行
0 8 * * 1 /path/to/script.sh
4. 每隔5分钟运行一次
*/5 * * * * /path/to/script.sh
5. 每月的第一天运行
0 0 1 * * /path/to/script.sh
6. 每小时的第0、15、30和45分钟各执行一次
0,15,30,45 * * * * /path/to/script.sh
7. 每小时的第0到5分钟,每分钟执行一次
0-5 * * * * /path/to/script.sh
8. 每分钟执行一次脚本的例子
* * * * * /path/to/script.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/879791.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用JS给官方电子课本扩展个下载功能

为了方便学生、老师和家长,官方提供了几乎所有在用的正版电子课本,由于没有下载功能,只能在线看,有点不方便。 为了更方便使用,用JS外挂了一个下载按钮。 扩展后效果如图: (根据2022年版课程…

fastadmin 部署后前台会员中心出现404错误

访问前台会员中心出现404错误。 解决:nginx访问站点增加伪静态 location / {if (!-e $request_filename){rewrite ^(.*)$ /index.php?s$1 last; break;} }在phpstydy中增加伪静态,如图:

基于java的工费医疗报销管理系统设计与实现

博主介绍:专注于Java vue .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的…

专题六_模拟_算法详细总结

目录 模拟算法 1.模拟算法流程(一定要在草稿纸上演算一遍流程) 2.把流程转换成代码 1. 替换所有的问号(easy) 解析: 1.暴力: 2.优化:(找规律) 总结: …

Vue3+Element Plus:使用el-dialog,对话框可拖动,且对话框弹出时仍然能够在背景页(对话框外部的页面部分)上进行滚动以及输入框输入信息

【需求】 使用Element Plus中的el-dialog默认是模态的(即它会阻止用户与对话框外部的元素进行交互),对话框弹出时仍然能够在背景页(对话框外部的页面部分)上进行滚动以及输入框输入信息,且对话框可拖动 【…

TCP/IP五层模型

OSI七层模型 OSI(Open Systems Interconnection)七层模型是一种概念框架,用于标准化不同计算机系统之间的通信过程 它由国际标准化组织(ISO)在1984年提出,主要用于网络通信 这七层模型从上到下分别是: 应用层(Application Layer):为应用软件提供网络服…

tomcat服务器

tomcat简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。Tomcat 虽然和 Apache 或者 Nginx 这些 Web 服务器一样,具有处理 HTML 页面的功能,然而由于其处理静态 HTML 的能力远不及 Apache 或者 Nginx&#x…

Leetcode 93-复原 IP 地址

有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。 例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.…

计算机毕业设计 服装生产管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

MySQL之表内容的增删改查(含oracel 9i经典测试雇佣表下载)

目录 一:Create 二:Retrieve 1.select列 2.where条件 3.结果排序 4. 筛选分页结果 三:Update 四:Delete 1.删除数据 2. 截断表 五:插入查询结果 六:聚合函数 七:group by子句的使用 表内容的CRUD操作 : Create(创建), Retrieve(读取)…

Win10 录屏秘籍大公开:从新手到高手的进阶之路

之前因为某些原因不方便到客户那里进行软件培训,我们就发现录屏讲解供客户随时查看的方式好像更有效果。这次我就介绍一些能够实现win10怎么录屏操作的工具讲解。 1.福昕录屏大师 链接:www.foxitsoftware.cn/REC/ 这个工具是一款专业的电脑录屏软件&a…

【三大运营商】大数据平台体系架构【顶层规划设计】

在国内运营商(如中国移动、中国联通、中国电信)的大数据平台建设中,顶层规划设计至关重要。以下是针对三大运营商为例【如电信】的大数据平台体系架构的顶层规划设计方案,涵盖整体架构、关键组件、数据管理、应用场景等方面。 1. …

2023年全国研究生数学建模竞赛华为杯B题DFT类矩阵的整数分解逼近求解全过程文档及程序

2023年全国研究生数学建模竞赛华为杯 B题 DFT类矩阵的整数分解逼近 原题再现: 一、问题背景   离散傅里叶变换(Discrete Fourier Transform,DFT)作为一种基本工具广泛应用于工程、科学以及数学领域。例如,通信信号…

react 基础语法

前置知识 类的回顾 通过class关键字定义一个类 类名首字母大写 class类有constructor构造器 new 一个类得到一个实例 类还有方法,该方法也会在其原型上 static静态数据,访问静态属性通过 类名.id getter和setter getter:定义一个属性&…

kubernetes存储之GlusterFS(GlusterFS for Kubernetes Storage)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

Agent Zero

文章目录 一、关于 Agent Zero现在有了UI:关键概念1、General-purpose 助理2、计算机作为工具3、多智能体合作4、完全可定制和可扩展5、沟通是关键 不错的功能记住已知问题理想的环境 二、Setup - 如何在Windows和MacOS上安装Agent Zero提醒:1、安装Cond…

Tiny-universe学习笔记1:Qwen-blog

本文是参与Datawhale Tiny-universe组队学习的第一篇学习笔记,参考链接:https://github.com/datawhalechina/tiny-universe Tiny-universe学习笔记1:Qwen-blog Qwen整体架构与Llama2类似,具体如下图所示: 其中&#…

深度学习笔记(8)预训练模型

深度学习笔记(8)预训练模型 文章目录 深度学习笔记(8)预训练模型一、预训练模型构建一、微调模型,训练自己的数据1.导入数据集2.数据集处理方法3.完形填空训练 使用分词器将文本转换为模型的输入格式参数 return_tenso…

Java | Leetcode Java题解之第417题太平洋大西洋水流问题

题目&#xff1a; 题解&#xff1a; class Solution {static int[][] dirs {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};int[][] heights;int m, n;public List<List<Integer>> pacificAtlantic(int[][] heights) {this.heights heights;this.m heights.length;this.n…

【JSrpc破解前端加密问题】

目录 一、背景 二、项目介绍 三、JSrpc 处理前端加密步骤 一、背景 解决日常渗透测试、红蓝对抗中的前端密码加密问题&#xff0c;让你的爆破更加丝滑&#xff1b;降低js逆向加密的难度&#xff0c;降低前端加密逻辑分析工作量和难度。 二、项目介绍 运行服务器程序和js脚本…