iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux sed工具的使用及工作原理是什么
  • 926
分享到

Linux sed工具的使用及工作原理是什么

2023-07-02 17:07:32 926人浏览 独家记忆
摘要

本文小编为大家详细介绍“linux sed工具的使用及工作原理是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux sed工具的使用及工作原理是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来

本文小编为大家详细介绍“linux sed工具的使用及工作原理是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux sed工具的使用及工作原理是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

基础知识

- 行编辑工具: 一行一行处理文件内容,例如:sed- 全屏编辑工具:一次性将文件所有内容加载到内存中,例如:vi、vim、nano

sed编辑器: Stream Editor

工作原理:

逐行处理文件内容,一次读取一行内容到模式空间处理。由此反复,知道最后一行处理完成。

# 处理:可以是输出到屏幕,也可以是文本的修改替换等操作# 模式空间:就是一块内存空间

Linux sed工具的使用及工作原理是什么

sed的基本用法

sed的命令格式

sed [option] 'script' [inputfile]#script: sed自身的脚本,sed自身语法的一种脚本#inputfile: 文件,如果不写文件就对标准输入的内容进行处理
sed实现自动打印功能(最基本用法)
sed '' filename#''里面的脚本内容不能省略#不输入脚本就是读入什么就默认打印什么 --- sed内置了自动打印的功能
sed选项
-n:关闭sed的自动打印-e:多点编辑(一次更改多个内容)-r,-E:使用正则表达式-i.bak 先把文件做个备份然后再改-s:将多个文件视为单独的文件

sed的脚本格式

sed脚本:由位置(地址)和指令组合而成

sed脚本的地址格式
  • 空地址

  • 单地址

  • 地址范围

  • 步进

空地址:

表示对全文进行处理

单地址:

表示处理指定的行。

#指定的行可以通过数字直接指定,也支持正则表达式匹配。#写正则表达式的格式:/pattern/
地址范围:

(n,m):表示从n行开始,到m行结束这个范围的内容。

#地址范围也可以使用正则表达式表示: /pat1/,/pat2/ (第一个正则表达式之后到下一个正则表达式中间的内容)
sed脚本的指令
 p --- 内容打印 Ip --- 忽略大小写输出 d --- 把模式空间内容删除掉,不再自动打印了 a --- 再某些行后面加内容 i --- 再某些行前面加内容 c --- 替换某一行的内容 w --- file 另存为指定文件 r --- 把一个文件内容读到当前匹配到的行中 = --- 某一行前面添加行号 ! --- 除了某一行的意思 q --- 结束或退出sed #搜索替代s/pattern/string/修饰符 --- 查找替换,支持使用其它分隔符
范例
#sed基本用法:自动打印#查看某个文件的文本内容sed '' dir.sh#打印指定行的内容sed -n '3p' /etc/passwd #需要使用-n关闭自动打印,因为如果使用了自动打印会输出所有内容,-p:打印匹配到的内容#打印出包含root的行sed -n '/root/p' /etc/passwd#打印从第三行到第六行的内容:sed -n '3,6p' /etc/passwd#打印以r开头到以g开头的行的中间那些行 sed -n '/^r/,/^g/p' /etc/passwd #找到了第一个满足条件的范围后不会停止,还会继续往下面找。#打印奇数行sed -n '1~2p' /etc/passwd #从1开始,每次步进2

sed工具的核心用法:搜索替代

#搜索替代的格式:s/pattern/string/修饰符  #支持使用其它分隔符,可以是其它形式:s@@@,s###s/模式/替代的字符串/修饰符
搜索替代的修饰符:
g --- 行内全局替换p --- 显示替换成功的行w --- /PATH/FILE 将替换成功的行保存至文件中I,i --- 忽略大小写# &符号:待变前面搜索出来的内容。 相当于一个变量,保存搜索出来的内容
正则表达式的分组(后项引用)
小括号实现分组,后面要表示第几个分组的内容就用 \num(第几个小括号里面的内容)  #分组实现把一个文件的一行切成多块,保留其中之一
范例
#sed分组的实现 --- 分组使用的是小括号(直接小括号是扩展正则表达式,不加r参数用的是基本正则表达式)echo abc123xyz | sed -r 's/(abc)(123)(xyz)/\1/' #输出abc 值留下了第一个分组#搜索替换和& --给前面特定的内容后面加内容sed -nr 's/r..t/&er/gp' /etc/passwd #给搜索到的内容加上er结尾#获取分区利用率#获取指定网卡的ip地址:ifconfig ens33 | sed -nr '2s/.*inet ([0-9.]+) .*/\1/p'#行首一直到inet 中间空格#一个以上的数字或点 空格 一直到结尾ifconfig ens33 | sed -rn '2s/(.*inet )([0-9].*)(netmask.*)/\2/p'#行首一直到inet,中间空格#数字#取基名和目录名echo "/etc/netplan/01-netcfg" | sed -nr 's#.*\/([^/]+)#\1#p'  #结果为 01-netcfg#从任意字符开始到以斜杠结尾,然后以非斜杠开头的内容#使用sed将selinux改为disabledsed -r -i.bak '/^SELINUX=/s/(SELINUX=).*/\1disabled/' /etc/selinux/config# 取文件的前缀和后缀echo a.b.c.tar | sed -nr 's/(.*)\.([^.]+)$/\2/p'#将非#开头的行加#sed -rn 's/^[^#]/#&/p' /etc/fstab 或#sed -rn 's/^[^#](.*)/#\1/p' /etc/fstab#将#开头的行删除##sed -ri.bak '/^#/s/^#//' /etc/fstab#删除指定的行cat /etc/passwd | sed '/tom/d' #删除含有root的行cat /etc/passwd | sed '4-10d' #删除第四行到第十行的内容

sed编辑器的高级用法

相关概念

模式空间:pattern space,存放sed需要处理哪一行数据(一个缓冲区)保持空间:Hold Space,临时存放模式空间中的数据(一个临时空间)

和两个空间相关的指令

#模式空间内容-->保持空间 小写覆盖,大写追加h 模式空间的内容覆盖到保持空间H 模式空间的内容追加到保持空间(内容追加)#保持空间内容--->模式空间g 保持空间数据覆盖模式空间G 保持空间内容追加模式空间#内容互换x 两者内容互换#匹配到的下一行内容--->模式空间n 匹配行的下一行覆盖至模式空间N 匹配行的下一行追加至模式空间#删除d 清空模式空间D 删除模式空间第一行
sed命令使用变量
#因为sed的脚本使用单引号括起来的,单引号属于强引用。所见即所得。#例如:打印含有root的行name=rootcat /etc/passwd | sed -nr "/$name/p" #如果里面的内容本来就带双引号的,所以就不能再在外面使用双引号。解决方法;cat /etc/passwd | sed -nr '/'$name'/p' #再加一个单引号把变量括起来 把'/'和'/p'成对了,变量空出来了#多点编辑并调用变量#使用变量的方式修改Httpd的配置文件 servername和port cat /etc/httpd/conf/httpd.conf | sed -nr -e  's/^(Listen) 80/\1 '$port'/p' -re "/#ServerName /c ServerName= `hostname`:$port/p"#或者:cat /etc/httpd/conf/httpd.conf | sed -nr -e  's/^(Listen) 80/\1 '$port'/p' -re '/#ServerName /c ServerName= '$(hostname)':'$port'/p' # $(command)#把包含ServerName的这一行替换成: ServerName: 主机名:端口
范例
#sed实现修改默认的网卡名 cat /etc/default/grub | sed -nr 's/^(GRUB_CMDLINE_LINUX=.*)"$/\1  net.ifnames=0"/p'#打印偶数行seq 10 | sed -n 'n;p' #n:读取到的行的下一行 #比如首先读取到的是第一行,因为有n,所以就以读到的内容的下一行内容覆盖当前读到的内容到模式空间,所以第一次输出2.seq 10 | sed -n '2~2p' #使用步进的方式实现seq 10 | sed -n '1~2!p' #!表示除了这些行,其他的都打印

读到这里,这篇“Linux sed工具的使用及工作原理是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网操作系统频道。

--结束END--

本文标题: Linux sed工具的使用及工作原理是什么

本文链接: https://www.lsjlt.com/news/343377.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux sed工具的使用及工作原理是什么
    本文小编为大家详细介绍“Linux sed工具的使用及工作原理是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux sed工具的使用及工作原理是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-07-02
  • Linux sed工具的使用及工作原理
    目录基础知识sed编辑器: Stream Editor工作原理:sed的基本用法sed的命令格式sed实现自动打印功能(最基本用法)sed选项sed的脚本格式sed脚本的地址格式se...
    99+
    2024-04-02
  • 域名查询工具的工作原理是什么
    域名查询工具的工作原理是通过查询域名系统(DNS)服务器来获取域名的相关信息。当用户输入一个域名查询时,查询工具会向本地DNS服务器...
    99+
    2023-06-12
    域名查询工具 域名
  • ThreadLocal工作原理及用法是什么
    今天就跟大家聊聊有关ThreadLocal工作原理及用法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。ThreadLocal是什么ThreadLocal是线程Thread中属性...
    99+
    2023-06-22
  • 命令注入工具Commix的工作原理是什么
    这篇文章主要为大家展示了“命令注入工具Commix的工作原理是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“命令注入工具Commix的工作原理是什么”这篇文章吧。命令注入工具Commix命令...
    99+
    2023-06-04
  • Makefile及其工作原理是什么
    这篇文章给大家介绍Makefile及其工作原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。当你需要在一些源文件改变后运行或更新一个任务时,通常会用到 make 工具。make 工具...
    99+
    2023-06-28
  • linux系统的工作原理是什么
    Linux系统的工作原理是基于Unix操作系统的设计理念和原则,它是一个开放源代码的操作系统。Linux系统的工作原理可以简单概括为...
    99+
    2023-09-27
    linux
  • Linux下DHCP工作原理是什么
    这篇文章主要介绍了Linux下DHCP工作原理是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux下DHCP工作原理是什么文章都会有所收获,下面我们一起来看看吧。DHCP原理DHCP租约四部曲A:客户...
    99+
    2023-06-27
  • Ansible架构及工作原理是什么
    Ansible架构及工作原理是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH ...
    99+
    2023-06-19
  • mybatis工作原理及流程是什么
    MyBatis是一种持久层框架,它的工作原理及流程如下:1. 配置文件加载:MyBatis首先读取配置文件(通常是mybatis-c...
    99+
    2023-08-14
    mybatis
  • dnslog原理及工作流程是什么
    DNSlog是一种常用于渗透测试和恶意软件分析的技术,通过利用DNS协议的特性,实现收集和分析恶意软件的通信行为。DNSlog的工作...
    99+
    2023-09-25
    dnslog
  • Java内存的原型及工作原理是什么
    这篇文章给大家介绍Java内存的原型及工作原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。主要通过分析Java内存分配的栈、堆以以及常量池详细的讲解了其的工作原理。一、java虚拟机内存原型寄存器:我们在程序中...
    99+
    2023-06-17
  • 人工智能的工作原理是什么
    人工智能的工作原理是通过模拟人类思维和学习能力的算法和技术,使机器能够自动地进行感知、理解、推理、决策和学习,从而实现人类智能的某些...
    99+
    2023-10-09
    人工智能
  • puppet的工作原理是什么
    今天小编给大家分享一下puppet的工作原理是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Puppet 的介绍什么是P...
    99+
    2023-06-28
  • NTPD的工作原理是什么
    今天小编给大家分享一下NTPD的工作原理是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Network Time Pro...
    99+
    2023-06-28
  • Torrents的工作原理是什么
    本篇内容主要讲解“Torrents的工作原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Torrents的工作原理是什么”吧!Torrents 是如何工作的?假设 ‘...
    99+
    2023-06-27
  • RabbitMQ的工作原理是什么
    这篇文章给大家介绍RabbitMQ的工作原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。RabbitMQ简介在介绍RabbitMQ之前实现要介绍一下MQ,MQ是什么?MQ全称是Message Queue,可以理...
    99+
    2023-06-19
  • ipsec的工作原理是什么
    IPSec(Internet Protocol Security)是一种用于保护网络通信安全的协议套件。它可以提供数据加密、数据完整...
    99+
    2023-10-10
    ipsec
  • ZooKeeper工作原理是什么
    这篇文章主要介绍ZooKeeper工作原理是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ZooKeeper 是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等,。Z...
    99+
    2023-06-27
  • chatgpt的工作原理是什么
    chatgpt的工作原理是以电子邮件和电子传真方式为用户提供多媒体信息传输,利用一个基于网络的、安全的点对点通讯系统为用户进行多人的...
    99+
    2023-02-09
    chatgpt
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作