sed 流式编辑器

sed 流式编辑器 ,可以非交互式修改文本,逐行操作,可以实现增删改查

sed 基础用法

使用方法

一,   前置命令 |  sed 选项  (定址符)指令
二,  sed  选项   (定址符)指令   文本

选项:
-n 屏蔽默认输出
-r 支持扩展正则
-i 写入文件
指令:
p 输出指定内容
d 删除指定内容
示例


df | sed -n '1p'   //输出df指令生成的文本中第1行
sed -n '/San/p' txt // 打印匹配San的行
sed  'p' txt      //输出所有行2次
sed -n 'p' txt      //输出所有行1次
sed -n '1p' txt      //输出第1行
sed -n '2p' txt      //输出第2行
sed -n '1,2p' txt	 //输出1到2行
sed -n '1,3p' txt    //输出1到3行
sed -n '2,+4p' txt    //输出第2行,以及后面的4行
sed -n '2p;4p' txt   //输出第2行,第4行
sed -n '1~2p' txt    //输出第1行后间隔2行才输出一次,也就是135..

d  删除
sed  '1d' txt    //删第1行
sed  '2d' txt
sed  '2,5d' txt   //删2到5行
sed  '2,+1d' txt   //删第2行以及后面1行
sed  '2d;4d' txt   //删第2行,第4行
sed  '1~2d' txt   //删奇数行
sed  '2~2d' txt   //删偶数行

指令
s 替换
sed '/old/new/' 文件

sed 's/old_word/new_word/g' 文件名   // 匹配所有行的词全部替换
sed 's/old_word/new_word/' 文件名   // 替换所有行匹配的第一个词
sed '2s/old_word/new_word/' 文件名   // 替换第二行匹配的第一个词
sed '2s/old_word/new_word/2' 文件名  // 替换第二行第2个匹配到的词
//  /bin/bash  替换成  /sbin/sh
sed 's//bin/bash//sbin/sh/' txt    //替换失败,替换符号冲突
sed 's#/bin/bash#/sbin/sh#' txt	   //更换替换符号为#
sed 's(/bin/bash(/sbin/sh(' txt    //更换替换符号为(
// 基本正则
sed 's/^/#/g' 文件名   //将所有行开头替换成#
sed  's/^#a//g' 文件名   //将所有以#a开头的行替换成控
sed 's/.//2;s/.$//' txt3     //利用替换功能,删除每行的第2个字符和最后一个字符
sed 's/[0-9]//g' txt3   //利用替换,删除所有数字
sed '/^Feb/s/$/***/' txt3 // 把***添加到以Feb开头的行尾
// 扩展正则
sed  -r 's/a{1,3}//g' 1.txt

\(\)  保留     \1   \2  \3
()   划分范围

egrep "(bin:/){2}" txt     //找2个连续的bin:/
sed -r 's/^(.)(.*)(.)$/\3\2\1/' txt3   //将文本中第一个字符和最后一个字符互换
sed -r 's/([A-Z])/[\1]/g' txt3  //将所有大写字母,加上中括号


指令
a 行后添加
i 行前添加
c 替换行
sed 'a 888' test //每行后添加
sed '1a 888' test //第一行后添加
sed '1,3a 888' test //1到3行后添加
sed '1,+3a 888' test //从1行开始添加,再后面三行添加
sed '1~3a 888' test  //第1行添加后间隔3行添加
sed '/A/a 888' test // 正则匹配
 
sed '1~3i 888' test
sed '1,+2i 888' test
sed '1,3i 888' test
sed '1i 888' test
sed 'i 888' test




编写脚本,实现vsftpd服务装包配置启服务的全过程,开启上传功能

#!/bin/bash
yum -y install vsftpd &> /dev/null
sed -i 's/^#anon_u/anon_u/' /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
systemctl enable vsftpd
chmod o+w /var/ftp/pub

测试时关闭防火墙和selinux
客户端访问
ftp://ip

posted @ 2022-03-25 12:01  菜鸟成长历程  阅读(79)  评论(0编辑  收藏  举报