翼度科技»论坛 云主机 LINUX 查看内容

关于Sed命令随笔

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
1.Sed 工作流程


  • 首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的
    行,完成后把该行发送到屏幕上。
  • sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。
  • Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
2. Sed使用方法

sed常见的语法格式有两种,一种叫命令行模式, 另一种叫脚本模式。
2.1 命令行格式

格式
  1. sed [option] 'sed的命令|地址定位' filename
  2. 说明: 引用shell script 中的变量应使用双引号,而非通常使用的单引号
  3. option:
  4. -e 进行多项编辑,即对输入行应用多条sed命令时使用
  5. -n 取消默认的输出
  6. -f 指定sed脚本的文件名
  7. -r 使用扩展正则表达式
  8. -i inplace,原地编辑(修改源文件)
复制代码
常用命令和选项
  1. p 打印行
  2. d 删除行
  3. i\ 在当前行之前插入文本。多行时除最后一行外,每行末尾需用”\“续行
  4. a\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行
  5. c\ 用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用”\“续行整行替换
  6. r 从文件中读取输入行
  7. w 将所选行写入文件
  8. s 用一个字符串替换另一个
  9. g 在行内进行全局替换
  10. & 保持查找串以便在替换中引用
  11. = 打印行号
复制代码
2.2 脚本格式

用法
  1. #sed -f scirpts.sed file        使用脚本处理文件
  2. #建议使用        ./sed.sh file
  3. #!/bin/sed -f
复制代码
注意事项
  1. 脚本文件是一个sed的命令行清单。commands
  2. 在每行的末尾不能有任何空格、制表符(tab)或其它文本。
  3. 如果在一行中有多个命令,应该用分号分隔。
  4. 不需要且不可用引号保护命令
  5. #号开头的行为注释
复制代码
Sed 实验

实验内容
  1. 根据IP自动更改主机名并自动安装vsftpd服务并完成相应配置
  2. 1.不支持本地用户登录
  3. 2.匿名用户可以上传新建删除
  4. 3.匿名用户限速500KBps
复制代码
  1. #!/bin/bash
  2. #获取IP地址
  3. ip=`ip a | grep -Eo 'inet .* brd' | grep -Eo '[0-9]{1,3}.*\.[0-9]{1,3}'`
  4. ip_end=`echo $ip | sed -E 's/^.*\.//g'`
  5. name="server${ip_end}.itcast.cc"
  6. hostnamectl set-hostname $name
  7. systemctl stop firewalld
  8. systemctl disable firewalld
  9. setenforce 0
  10. sed -i 's/=enforcing/=permissive/g' /etc/selinux/config
  11. yum install vsftpd -y
  12. systemctl start vsftpd
  13. systemctl enable vsftpd
  14. sed -i 's/local_enable=YES/local_enable=NO/g' /etc/vsftpd/vsftpd.conf
  15. sed -i 's/#anon_upload_enable=YES/anon_upload_enable=YES/g' /etc/vsftpd/vsftpd.conf
  16. sed -i 's/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g' /etc/vsftpd/vsftpd.conf
  17. sed -i '$a anon_max_rate=500000' /etc/vsftpd/vsftpd.conf
  18. systemctl restart vsftpd
复制代码
来源:https://www.cnblogs.com/ajajroom/p/18062577
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具