sed

sed 过滤文件改文 ( 行编辑器)
Sed 选项 脚本(地址命令)inputfile(要处理的文件名)
-n 不输出模式空间内容到屏幕,即不自动打印
-e 多点编辑
-f /PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本
-r支持使用扩展正则表达式
-i.bak 备份文件并远处编辑 -i编辑文件不备份
script ‘地址命令’
不给地址: 对全部的所有行处理
单地址:# 指定的行(数字),$最后一行
/pattern/ 被此模式匹配到的每行
地址范围 : #,#
#,+#
/pat1/,/pat2/
#,/pat1/
~:步进
1~2奇数行
2~2偶数行
编辑命令
d: 删除模式空间匹配的行,并立即启用下一轮循环
p:打印当前模式空间内容,追加到默认输出之后
a [\]text:在指定行后面追加文本 支持使用\n实现多行追加
i [\]text:在行前面插入文本
c [\]text:替换行为单行或多行文本
w /path/somefile: 保存模式匹配的行至指定文件
r /path/somefile:读取指定文件的文本至模式空间中 匹配到的行后
=: 为模式空间中的行打印行号
!:模式空间中匹配行取反处理

sed工具
s///:查找替换,支持使用其它分隔符,s@@@,s### 替换标记:
g: 行内全局替换
p: 显示替换成功的行
w /PATH/TO/SOMEFILE:将替换成功的行保存至文件中

sed ‘2,5a\ ===’ f2 把f2文件2-5行添加‘空===’
sed -r ‘s/(root)/\1er/g’ /etc/passwd 在/etc/passwd全局搜索root替代为rooter相当于在root后插入er
sed -r ‘s/(root)/admin\1/g’ /etc/passwd在/etc/passwd全局搜索root替代为adminroot相当于在root前面插入admin
ifconfig ens33|sed -r ‘s@.*inet (.*) netmask.*@\1@’|sed -n ‘2p’显示IP地址

sed ‘/^#<VirtualHost/,/^#</s/#//’ /etc/httpd/conf/httpd.conf|sed -r ‘s@#(Name.*)@\1@’
sed -re ‘s@#(Name.*)@\1@’ -e ‘/^#<VirtualHost/,$s/#//’ /etc/httpd/conf/httpd.conf同上
echo “/etc/sysconfig/network/”|sed -r ‘s@(.*\/)([^/]+\/?$)@\1@”显示路径 \2显示基名

sed示例
sed ‘2p’ /etc/passwd 打印第二行
sed –n ‘2p’ /etc/passwd 只打第二行
sed –n ‘1,4p’ /etc/passwd 只打印第1-4行
sed –n ‘/root/p’ /etc/passwd 只打印包含root的行
sed –n ‘2,/root/p’ /etc/passwd 从2行开始 (只打印从第2行到包含root的行)
sed -n ‘/^$/=’ file 显示空行行号
sed –n –e ‘/^$/p’ –e ‘/^$/=’ file 显示空行并打印行号
sed ‘/root/a\superman’ /etc/passwd行后 (在包含root的行后面加上字符串)
sed ‘/root/i\superman’ /etc/passwd 行前
sed ‘/root/c\superman’ /etc/passwd 代替行 (用字符串代替包含root的行)

sed ‘/^$/d’ file 删除空行
sed ‘1,10d’ file 删除1-10行
nl /etc/passwd | sed ‘2,5d’ 显示行号并删除2,-5行
nl /etc/passwd | sed ‘2a tea’ 显示行号并在第二行后加tea
sed ‘s/test/mytest/g’ example 搜索test用mytest替代(全文搜索g)
sed –n ‘s/root/&superman/p’ /etc/passwd 单词后 {在单词root后插入superman并打印(&表示前面搜索的字符串root)}
sed –n ‘s/root/superman&/p’ /etc/passwd 单词前
sed -e ‘s/dog/cat/’ -e ‘s/hi/lo/’ pets 多点替换(把dog替换成cat,把hi替换成lo)
sed –i.bak ‘s/dog/cat/g’ pets 搜索后改文件{(-i).bak备份一份}

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96004

(0)
张陆禄张陆禄
上一篇 2018-04-15 13:38
下一篇 2018-04-15 14:11

相关推荐

  • 正则表达式

    grep命令: 文本过滤(按行过滤) 参数   -v 取反 -i 忽略大小写 -n 显示行号 -c 统计匹配行数 -q 静默执行(不显示执行结果) -o 仅显示搜索到的字符串 -A #(数字) 包含关键字的后续几行 -B #(数字) 包含关键字的前面几行 -C #(数字) 包含关键字的前后几行 -w 匹配整个单词 -E 相当于fgrep 正则表达式 REGE…

    Linux笔记 2018-03-30
  • 新加磁盘的实现方法

    生产中硬盘会不断的出现故障此时我们就需要更换新的硬盘,那么拿到一个新的硬盘之后我们该如何来使用呢?一个新的硬盘首先我们要把旧硬盘上的东西进行备份然后用新的硬盘替代。新硬盘使用之前我们必须要先对新硬盘进行 分区—>创建文件系统—>挂载—>设置开机自启 这几个步骤,那么接下来我们一个一个来说明每个步骤的实现过…

    Linux笔记 2018-04-30
  • Linux系统用户管理与文本处理

    1、列出当前系统上所有已经登录的用户的用户名,同一个用户登录多次,则只显示一次。 ~]# who | cut -d’ ‘ -f1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 ~]# who | sort -k 3 -r | head -n 1 | cut -d’ ‘ -f1 | id 3、…

    Linux笔记 2018-07-15
  • 第二周作业

    第二周作业 一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 pwd:  显示当前的工作目录 -P 显示真实物理路径 -L 显示链接路径(默认)   cd:  改变目录 使用绝对路径或者相对路径: cd /root/Desktop  cd Desktop/ 切换至父目录: cd .. 切换至当前用户主目录: cd 切换至…

    2018-07-06
  • 马哥教育– 第一周作业

    一、描述计算机的组成及其功能。 计算机由运算器,控制器,存储器,输入设备和输出设备五大部分组成。 运算器的功能是用于完成算术运算、逻辑运算。负责计算机执行的所有数学与逻辑功能。 控制器的功能是主要负责对程序所执行的指令进行分析,并协调计算机各部件进行工作计算机的所有其他部件。 存储器的功能是用于储存信息的设备,通常是将信息数字化后再利用电、磁、光学等方式的媒…

    2018-05-12
  • sudu、文件共享(vsftp、samba、nfs)

    sudo:授权之后,能够让某用户以另外一个用户身份运行命令; 配置文件:/etc/sudoers;其编辑命令visudo sudo操作日志记录至/var/log/secure中 特别注意:禁止授权修改root密码;! passwd root,passwd [a-Z]* 配置项: root ALL=(ALL) ALL %wheel ALL=(ALL) ALL …

    Linux笔记 2018-05-30