Shell 编程 6 — sed、awk、systemd 服务、进程锁

概述

Day25 是 Shell 文本处理三剑客的收官之篇,覆盖 sed 流编辑器(定位、增删改查、模式空间/保持空间)、awk 按列处理与格式化输出,以及 systemd 服务单元制作和进程锁实现。

核心内容

sed 流编辑器

  • 选项:-n(取消默认输出)、-i(直接修改)、-r/-E(扩展正则)
  • 命令:p(打印)、d(删除)、s(替换)、a(追加)、i(插入)、c(整行替换)
  • 定位:行号、正则、范围(/pat1/,/pat2/
  • 模式空间 vs 保持空间:h/H/g/G/x

awk

  • $0(整行)、$1-$n(列)、NF(字段数)、NR(行号)
  • -F 指定分隔符,printf 格式化输出

systemd 服务

  • .service 文件:[Unit]、[Service](Type, ExecStart, Restart)、[Install]
  • 命令:systemctl daemon-reloadstart/enable/status

进程锁

  • pid 文件方式:简单,需手动处理异常退出
  • flock 命令:原子操作,脚本退出自动释放,生产推荐

关联