流编辑器sed

sed简介

sed是一种流编辑器,处理时,把当前处理的行存储在临时缓冲区中,称为模式空间,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下行,这样不断重复,直到文件末尾。文件内容并没有改变。

sed的语法

基本语法:# sed 参数 测试文件

常用参数详解

# cat passwd -n > testfile 【配置测试文件】

-n : --quiet,--silent: 不输出模式空间中的内容,使用安静模式,在一般sed的用法中,所有来自STDIN的数据一般都会被列出到屏幕上,但如果加上-n参数后,则只有经过sed特殊处理的那行才会被列出来;

-i : 直接编辑原文件,而不是由屏幕输出,默认不对原文件进行操作;

-e : 直接在命令行模式上进行sed的动作编辑,多个子命令之间也可以用分号隔开;

-r : 使用扩展正则表达式;

-f : 直接将sed的动作写在一个文件内,-f rule则可以执行rule内的sed动作。

# vim rule

模式空间中的编辑操作

地址定界

# sed -n (行/参数)s / 匹配内容 / 替换内容 /g测试文件

# cat passwd 【查看测试文件】

# sed '1,3s/ : / bin /g' passwd 【1-3行,将 : 为目标替换为bin

# sed -e ' 2 , +2s /bin/:/g' passwd 【替换2 行以及后2 行】

# sed -e ' 2 ~2s /:/@/g' passwd 【第2 行开始,间隔1行替换】

# sed -e '/ daemon /,/ sys /s/:/@/g' passwd 【对daemon开头到sys开头的行替换字符】

# sed ' 1 ,/^ sys /s/:/##/g' passwd 【从第1 行到sys的行】


常用编辑命令

显示删除行****/d****

显示指定行****/p****

添加行a

插入行i

整行替换

整合文件

字符替换

练习:根据用户参数和用户密码参数,设置创建用户脚本

# vim cj.sh 【创建脚本】

#!/bin/bash

li=`wc -l user.sh | cut -d " " -f 1` 【wc -l 统计行数,cut -d " " -f 1 以空格为分隔符取第一列】

创建用户

for i in `seq 1 $li`

do

#读取脚本

username=`sed -n "{i}p" 1` 【读取第一个参数,用户名脚本】

password=`sed -n "{i}p" 2` 【读取第二个参数,密码脚本】

检查用户是否已存在

if id "$username" &>/dev/null;

then

echo "用户 '$username' 已存在"

#不存在创建

else

useradd "$username"

echo passwd \| passwd --stdin username &> /dev/null

fi

done

用户已创建运行结果:

运行结果:

特殊字符

# sed '2,+1s/:/##/g' testfile 【替换第2行以及后1行】

相关推荐
tiannian122032 分钟前
RFID资产管理系统投入产出全拆解:硬件、软件、部署、运维四笔账一次算清
运维·rfid·资产管理系统
我头发多我先学34 分钟前
Linux入门:简要认识Linux和基础指令
linux·运维·服务器
weixin_666593991 小时前
自然资源时空智能体建设方案:从数字化到智能化的演进路径
大数据·人工智能·大模型·云计算·agent·云平台·空间数据库
Urbano1 小时前
职业工装外套核心缝制工序自动化替代分析与多品牌设备选型报告
运维·自动化
逍遥德1 小时前
运维技术栈Linux+docker+Kubernetes+Jenkins/GitLab CI 知识点详细列表
linux·运维·docker
名字还没想好☜1 小时前
Kubernetes CrashLoopBackOff 排查全流程:从 describe 到日志到 exit code
运维·docker·云原生·容器·kubernetes
冰封之寂1 小时前
Docker 部署与基础命令详解:从安装到容器管理全流程指南
linux·运维·docker·容器
隔振消音专家2 小时前
冷水机组振动传导影响及专业化减振适配治理方案
大数据·运维
Brilliantwxx2 小时前
【Linux】 软件包管理器(yum)+ Vim使用
linux·运维·服务器·开发语言·编辑器·vim
一只小菜鸡..2 小时前
南京大学 操作系统 (JYY) 学习笔记:导论与历史的轮回 (OS Introduction)
笔记·学习