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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值