sed解析和用例(马哥视频笔记)

sed(流编辑器)

sed基本用法:

sed:Stream EDitor

行编辑器(另一种:全屏编辑器:vi、vim)

sed:模式空间

sed默认部编辑源文件,仅对模式空间中的数据做处理;而后将模式空间打印到屏幕(默认朱行读取);

sed ‘AddressCommand‘  file ...

对这个或者这种(file)文件当中的,符合这个地址指定范围(Address)内的行 实现执行以下编辑命令(Command)。

Address:

1、StartLine,Endline

比如1,100

$:最后一行

$-1  倒数第二行

2、/RegExp/

/^root/

3 、/pattern1/,/pattern2/

第一次被pattern1匹配到的行开始,至第一行被pattern2匹配到的行结束,这中间的所有行

4、LineNumber

指定的行

5、StartLine,+N

从StartLine开始,向后的N行;

Command:

d:删除符合条件的行;

p:显示符合条件的行;注意,直接使用p会显示两次,一次是符合条件的内容,一次是显示模式空间;需要加-n

以下d的例子把d改为p,sed后面加个

-n

,就只显示需要打印的内容

例如:      sed -n ‘/^\//p‘ /etc/fatab

-i:直接修改原文件

-e: SCRIPT -e SCRIPT:可以同时执行多个脚本

-f  /PATH/TO/SED_SCRIPT

sed -f /path/to/scripts file   把某个路径下的脚本一个个运用到file里

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

a \string:在指定的航后面追加新行,内容为"string"(不包括斜杠)

sed ‘/^\//a \hhhhh‘ /etc/fatab

加两行:

sed ‘/^\//a \hhhhh\n\hhhhh‘ /etc/fatab(注意\n为换行号)

i \string:在指定的航前面追加新行,内容为"string"(不包括斜杠)

r FILE:将指定的文件的内容添加到符合条件的行处

sed ‘2r /etc/issue‘ /etc/fatab

sed ‘1,2r /etc/issue‘ /etc/fatab  一二行添加

w FILE:将指定范围内的内容内存至指定的文件中

sed ‘/oot/w /tmp/oot.txt‘ /etc/fatab

s///:查找并替换,默认只替换每一行中第一次被匹配到的字符串

s/pattern/string/(修饰符[可选]):

加修饰符:

g:全局替换

i:查找时忽略字符大小写

s///也可以s###或[email protected]@@只需要这三个符号一样,如果使用@@@或者###,则/不需要用转义字符表示,如:‘[email protected]/@#@g‘

1、sed ‘s/oot/OOT/‘ etc/fstab   :每一行的oot更换成OOT

2、sed ‘1,2s/oot/OOT/‘ etc/fstab   :第一二行的oot更换成OOT

3、sed ‘s/^\//#/‘ etc/fstab   :每一行行首的/更换成#

4、sed ‘s/\//#/‘ etc/fstab   :每一行的/更换成#

5、sed ‘[email protected]@&[email protected]‘ sed.txt

&引用模式匹配到的整个串

原本内容:

hello, like

hi, my love

后来:

hello,liker

hi,my lover

还可以 使用后向引用:

sed ‘[email protected]\(l..e\)@\[email protected]‘ sed.txt

例子1:删除符合条件的行:

把 /etc/fstab的1、2行删除

sed ‘1,2d‘ /etc/fstab

例子2:删除第3行到倒数第二行(暂时去掉-1):

sed ‘3,$-1d‘ /etc/fstab

例子3:只要行中包含oot就给予删除:(使用模式,过滤特定的行)

sed ‘/oot/d‘ /etc/fstab

例子4:

sed ‘3,$+1d‘ /etc/fstab

例子5:

sed ‘1,1+2d‘ /etc/fatab

sed ‘2d‘ /etc/fatab

例子6:删除以斜线开头的行

sed ‘/^\//d‘ /etc/fatab

时间: 2024-10-23 01:43:40

sed解析和用例(马哥视频笔记)的相关文章

马哥视频笔记:03_02 03_03 03_04

bash特征详解 B.C.K shell shell外壳 GUI:Gnome.KDE.Xfce CLI:sh.csh.ksh.bash(首选).tcsh 多用户登录到系统,使用shell,也只有一个shell程序在运行,但是可以有多个shell进程. *进程:在每个进程看来,当前主机上只存在内核和当前进程: 进程是程序的副本 用户工作环境: bash: #管理员的命令提示符 $普通用户 exit 退出当前shell(子shell) pstree Ctrl+a:跳到命令行首 Ctrl+e:跳到命令

DNS服务器配置小结(参考私房菜,马哥视频)

DNS原理方面的东西就不介绍了,具体的可以看私房菜的DNS服务器部分,讲的很好.主要跟着私房菜的思路在虚拟机中重新实践下了吧 a)需要注意一下几个重要的文件 /etc/named.conf主配置文件,有区域的定义,一定要记住 /var/named/这个文件夹下存放区域数据文件 /etc/rc.d/init.d/named命令可以使用reload,start,restart,stop /var/log/messages登录日志信息 b)几个检查是否有语法错误的命令named-checkconf;n

awk基础(马哥视频)

awk基础 1.1 print print的使用格式: print item1,item2, …. 要点: 各项目自己使用逗号隔开,而输出时则以空白字符分隔: 输出的item可以为字符串或者数值,当前记录的字段(如$1).变量或者awk的表达式:数值会先转换为字符串,而后再输出: print的命令后面的item可以省略,此时其功能相当于print $0,因此,如果想输出空白行,则需要使用print “”: 例子: # awk ‘BEGIN {print “line one\nline two\n

马哥学习笔记八——LAMP编译安装之PHP及xcache

1.解决依赖关系: 请配置好yum源(可以是本地系统光盘)后执行如下命令: # yum -y groupinstall "X Software Development" 如果想让编译的php支持mcrypt扩展,此处还需要下载如下两个rpm包并安装之: libmcrypt-2.5.7-5.el5.i386.rpm libmcrypt-devel-2.5.7-5.el5.i386.rpm 2.编译安装php-5.4.13 首先下载源码包至本地目录. # tar xf php-5.4.13

马哥学习笔记二十二——高可用集群原理

HA Resource:资源 FailOver:故障转移 FailBack:故障转回 资源粘性:资源是否倾向于留在当前节点 Messaging Layer:集群服务信息层,基于UDP互相传递心跳信息,集群事务信息等 heartbeat(v1,v2,v3) heartbeat v3:heartbeat,pacemaker,cluster-glue corosync cman keepalived ultramonkey CRM:(cluster resource manager)集群资源管理器,统

马哥学习笔记二十四——分布式复制快设备drbd

DRBD: 主从 primary: 可执行读.写操作 secondary: 文件系统不能挂载 DRBD: dual primay, 双主(基于集群文件系统的高可用集群) 磁盘调度器:合并读请求,合并写请求: Procotol:drbd数据同步协议 A: Async, 异步  数据发送到本机tcp/ip协议栈 B:semi sync, 半同步  数据发送到对方tcp/ip协议 C:sync, 同步  数据到达对方存储设备 DRBD Source: DRBD资源 资源名称:可以是除了空白字符外的任意

马哥学习笔记七——LAMP编译安装之MYSQL

1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录. 2.新建用户以安全方式运行进程: # groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql # chown -R mysql:mysql /mydata/data 3.安装并初始化my

马哥学习笔记三十二——计算机及操作系统原理

缓存方式: 直接映射 N路关联 缓存策略: write through:通写 write back:回写 进程类别: 交互式进程(IO密集型) 批处理进程(CPU密集型) 实时进程(Real-time) CPU: 时间片长,优先级低IO:时间片短,优先级高 Linux优先级:priority 实时优先级: 1-99,数字越小,优先级越低 静态优先级:100-139,数据越小,优先级越高 实时优先级比静态优先级高 nice值:调整静态优先级   -20,19:100,139   0:120 ps

马哥学习笔记二十一——LVS DR模型

kernel parameter: arp_ignore: 定义接收到ARP请求时的响应级别: 0:只要本地配置的有相应地址,就给予响应: 1:仅在请求的目标地址配置请求到达的接口上的时候,才给予响应: arp_announce:定义将自己地址向外通告时的通告级别: 0:将本地任何接口上的任何地址向外通告: 1:试图仅向目标网络通告与其网络匹配的地址: 2:仅向与本地接口上地址匹配的网络进行通告: curl命令选项: --cacert <file> CA证书 (SSL) --capath &l