Linux系统三剑客sed及配合正则表达式使用范例。

本文介绍了Linux系统中sed编辑器的工作原理和常用命令,包括sed的非破坏性处理、基本操作如删除、插入、替换等,并通过具体例子展示了如何在文本中查找、替换和处理特定行,以及如何利用正则表达式进行更复杂的文本操作。此外,还提到了sed在多行处理、条件分支和存储空间操作等方面的高级用法。
摘要由CSDN通过智能技术生成

1、sed简介.
sed是一种新型的,非交互式的编辑器。它能执行与编辑器vi和ex相同的编辑人去。sed编辑器没有提供交互式的使用方式,使用者只能在命令行输入编辑命令、指定文件名,然后在屏幕上查看输出。sed编辑器没有破坏性,它不会修改文件,除非使用shell重定向来保存输出结果。默认情况下,所有的输出行都被打印到屏幕上。
2、sed工作过程.
sed编辑器逐行处理文件(或输入),并将输出结果发送到屏幕上。sed的命令就是在vi和ed/ex编辑器中见到的那些。sed把当前正在处理的行保存在一个临时缓存区,这个缓存区称为模式空间或临时缓冲。sed处理完模式空间中的行后(即在该行上执行sed命令后),就把该行发送给到屏幕上(除非之前有命令删除这一行或取消打印操作)。sed每处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓存区中,对这个副本进行编辑,所以不会修改或破坏源文件。
sed处理过程如下:
在这里插入图片描述
从上图可以看出sed不是破坏性的,它不i修改正在编辑的文件。
3、sed命令使用.
常用选项:
-n 使用安静模式,在一般情况所有的 STDIN 都会输出到屏幕上,加入-n 后只打印被 sed 特殊处理的行。

-e 多重编辑,且命令顺序会影响结果。

-f 指定一个 sed 脚本文件到命令行执行。

-r Sed 使用扩展正则。

-i 直接修改文档读取的内容,不在屏幕上输出

Sed操作命令。

sed 操作命令告诉 sed 如何处理由地址指定的各输入行。如果没有指定地址,sed 就会处理输入的所有的行。

x:指定行号。

x,y:指定从x到y的行号范围。

/ pattern/:查询包含模式的行 # # % %。

/ pattern/ pattern/:查询包含两个模式的行。

/ pattern/,x:从与 pattern的匹配行到x号行之间的行。

x,/ pattern/:从x号行到与 pattern的匹配行之间的行。

x,y!:查询不包括x和y行号的行。

r:从另一个文件中读文件。

w:将文本写入到一个文件。

y:变换字符。

q:第一个模式匹配完成后退出。

l:显示与八进制ASCⅡ码等价的控制字符。

{}:在定位行执行的命令组。

p:打印匹配行。

=:打印文件行号。

a:在定位行号之后追加文本信息。

i:在定位行号之前插入文本信息。

d:删除定位行。

c:用新文本替换定位文本。

s:使用替换模式替换相应模式。

n:读取下一个输入行,用下一个命令处理新的行。

N:将当前读入行的下一行读取到当前的模式空间。

h:将模式缓冲区的文本复制到保持缓冲区。

H:将模式缓冲区的文本追加到保持缓冲区。

x:互换模式缓冲区和保持缓冲区的内容。

g:将保持缓冲区的内容复制到模式缓冲区。

G:将保持缓冲区的内容追加到模式缓冲区。

删除:
1.将/etc/passwd 的内容列出并打印行号,同时,将2-5行删除显示nl /etc/passwd | sed ‘2,5d’

注: sed是sed-e的简写, 后接单引号

2.同上删除第2行 nl /etc/passwd | sed ‘2d’

3.同上删除第三行到最后一行 nl/etc/passwd | sed ‘3,$d’

4.删除批注行 sed ‘/^#.*/d’ /etc/ini

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值