当前位置:首页 > 实用技巧 >

linuxsed命令使用教程(sed命令在linux中的作用)

来源:原点资讯(www.yd166.com)时间:2023-11-18 03:38:30作者:YD166手机阅读>>

The Sed exchange command

作为第一个示例,我们可使用交换命令去反序输出一个输入文件的前两行:

cat -n inputfile | sed -n -e 'x;n;p;x;p;q'

当然,在你设置保持空间之后你并没有立即使用它的内容,因为只要你没有显式地去修改它,保持空间中的内容就保持不变。在下面的例子中,我在输入一个文件的前五行后,使用它去删除第一行:

cat -n inputfile | sed -n -e '

1{x;n} # 交换保持和模式空间

# 保存第 1 行到保持空间中

# 然后读取第 2 行

5{

p # 输出第 5 行

x # 交换保持和模式空间

# 去取得第 1 行的内容放回到模式空间

}

1,5p # 输出第 2 到第 5 行

# (并没有输错!尝试找出这个规则

# 没有在第 1 行上运行的原因 ;)

'

保持命令

保持命令(h)是用于将模式空间中的内容保存到保持空间中。但是,与交换命令不同的是,模式空间中的内容不会被改变。保持命令有两种用法:

  • h 将复制模式空间中的内容到保持空间中,覆盖保持空间中任何已经存在的内容。
  • H 将模式空间中的内容追加到保持空间中,使用一个新行作为分隔符。

linuxsed命令使用教程,sed命令在linux中的作用(9)

The Sed hold command

上面使用交换命令的例子可以使用保持命令重写如下:

cat -n inputfile | sed -n -e '

1{h;n} # 保存第 1 行的内容到保持缓冲区并继续

5{ # 在第 5 行

x # 交换模式和保持空间

# (现在模式空间包含了第 1 行)

H # 在保持空间的第 5 行后追加第 1 行

x # 再次交换第 5 行和第 1 行,第 5 行回到模式空间

}

1,5p # 输出第 2 行到第 5 行

# (没有输错!尝试去找到为什么这个规则

# 不在第 1 行上运行 ;)

'

获取命令

获取命令(g)与保持命令恰好相反:它从保持空间中取得内容并将它置入到模式空间中。同样它也有两种方式:

  • g 将复制保持空间中的内容并将其放入到模式空间,覆盖模式空间中已存在的任何内容
  • G 将保持空间中的内容追加到模式空间中,并使用一个新行作为分隔符

linuxsed命令使用教程,sed命令在linux中的作用(10)

The Sed get command

将保持命令和获取命令一起使用,可以允许你去存储并调回数据。作为一个小挑战,我让你重写前一节中的示例,将输入文件的第 1 行放置在第 5 行之后,但是这次必须使用获取和保持命令(使用大写或小写命令的版本)而不能使用交换命令。带点小运气,可以更简单!

同时,我可以给你展示另一个示例,它能给你一些灵感。目标是将拥有登录 shell 权限的用户与其它用户分开:

cat -n inputfile | sed -En -e '

\=(/usr/sbin/nologin|/bin/false)$= { H;d; }

# 追回匹配的行到保持空间

# 然后继续下一个循环

p # 输出其它行

$ { g;p } # 在最后一行上

# 获取并打印保持空间中的内容

'

复习打印、删除和次行命令

现在你已经更熟悉使用保持空间了,我们回到打印、删除和次行命令。我们已经讨论了小写的 p、d 和 n 命令了。而它们也有大写的版本。因为每个命令都有大小写版本,似乎是 Sed 的习惯,这些命令的大写版本将与多行缓冲区有关:

  • P 将模式空间中第一个新行之前的内容输出
  • D 删除模式空间中第一个新行之前的内容(包含新行),然后不读取任何新的输入而是使用剩余的文本去重启一个循环
  • N 读取输入并追加一个新行到模式空间,用一个新行作为新旧数据的分隔符。继续运行当前的循环。

linuxsed命令使用教程,sed命令在linux中的作用(11)

The Sed uppercase `Delete` command

linuxsed命令使用教程,sed命令在linux中的作用(12)

栏目热文

selinux是如何管理进程的(简述selinux的三种工作模式和功能)

selinux是如何管理进程的(简述selinux的三种工作模式和功能)

进程的概念与查看进程-运行中的程序,从程序开始运行到终止的整个生命周期是可管理的 查看命令 ps -e 表示所有...

2023-11-18 03:36:27查看全文 >>

linux中sed命令用法(sed命令在linux中的作用)

linux中sed命令用法(sed命令在linux中的作用)

作用sed命令是一个非交互式的行文本编辑器,它能对文件内容进行编辑,默认每次处理文本文件中所匹配到一行内容到模式空间,然...

2023-11-18 03:44:39查看全文 >>

linux利器学习之sed命令教程(linuxsed命令详细教程学习)

linux利器学习之sed命令教程(linuxsed命令详细教程学习)

简介sed命令是Linux中的一种文本编辑工具,它使用流编辑器(stream editor)的方式对文本进行处理,它可以...

2023-11-18 03:32:06查看全文 >>

linuxsed的详细讲解与使用方法(linux教程sed命令的用法教程)

linuxsed的详细讲解与使用方法(linux教程sed命令的用法教程)

概述sed命令是一个面向字符流的非交互式编辑器,也就是说sed不允许用户与它进行交互操作。sed是按行来处理文本内容的。...

2023-11-18 04:06:16查看全文 >>

selinux开启宽松模式(三星selinux开启宽松模式)

selinux开启宽松模式(三星selinux开启宽松模式)

1、安装mysql将mysql镜像文件传到root目录下。2、关闭防火墙浏览器访问,关闭防火墙,用setenforce ...

2023-11-18 03:22:20查看全文 >>

linux运维之sed使用教程交流(linuxsed命令详细教程学习)

linux运维之sed使用教程交流(linuxsed命令详细教程学习)

简介 Sed是一款流编辑工具,用来对文本进行过滤与替换操作,特别是当你想要对几十个配置文件做统一修改时,你会感受到Sed...

2023-11-18 03:48:37查看全文 >>

linuxsed命令详解(sed命令在linux中的作用)

linuxsed命令详解(sed命令在linux中的作用)

一 基础介绍1.1 功能sed(流编辑器)是一种强大的编辑器,用于处理文本数据。1.2 语法sed [选项] '...

2023-11-18 04:05:12查看全文 >>

linux怎么添加sed命令(linux教程sed命令的用法教程)

linux怎么添加sed命令(linux教程sed命令的用法教程)

请关注本头条号,每天坚持更新原创干货技术文章。如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习1. 前言...

2023-11-18 03:22:01查看全文 >>

气压带风带的分布图示(气压带风带的分布特点)

气压带风带的分布图示(气压带风带的分布特点)

知识点气压带、风带假设地球是一个光滑的球体,则地球上存在着“七压六带”。春分和秋分时,气压带的纬度位置为:①赤道低气压带...

2023-11-18 03:59:18查看全文 >>

气压带风带的分布有何特点(气压带风带的特点及影响)

气压带风带的分布有何特点(气压带风带的特点及影响)

知识点1、亚洲、欧洲的气候分布亚欧大陆是世界上最大的大陆,地跨热带、亚热带和寒带,气候类型多样(11种气候),其中季风气...

2023-11-18 04:01:04查看全文 >>

文档排行