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-reload→start/enable/status
进程锁
- pid 文件方式:简单,需手动处理异常退出
flock命令:原子操作,脚本退出自动释放,生产推荐
关联
- 前驱:Shell 编程 5(grep/正则)
- 相关概念:systemd(进程管理)、文本处理三剑客(grep+sed+awk)