作者:爱爱爱爱你MLB-你 | 来源:互联网 | 2020-10-03 10:08
作为shell编程三剑客之一的sed,重要程度不言而喻。sed是一个流编程器,每次处理一行,处理完后再接着处理下一行,它支持正则,功能非常的强大。但sed比一般的命令复杂一些,选项繁多,想要掌握它是需要花点功夫的。下面我们通过众多的例子来看看这个强大的sed命令的作用吧!
语法格式:sed [选项] [动作]
常用选项如下:
动作中的参数及太多了,下面列一下:
a:在匹配行下面加入一行
c:将匹配的行修改新的内容
d:删除匹配的行
i:在匹配行前加入内容
p:打印
s:替换匹配行的内容
范例一:打印/etc/passwd文件的第5-10行
# sed -n '5,10p' /etc/passwd
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
范例二:删除/etc/passwd文件的第2行,第2到10行
# cat -n /etc/passwd | sed '2d' | sed '5,10d'
除了上面的方法,我们还可以用-e选项来完成
# cat -n /etc/passwd | sed -e '2d' -e '5,10d'
范例三:获取服务器ip地址
这个案例非常的棒,建议大家仔细看看
# ifconfig eth0
eth0: flags=4163 mtu 1500
inet 172.26.9.143 netmask 255.255.240.0 broadcast 172.26.15.255
ether 00:16:3e:0a:01:ad txqueuelen 1000 (Ethernet)
……
我们需要的是172.26.9.143。
第一步,获取我们想要处理的行
# ifconfig eth0 | sed -n '/.*inet/p'
inet 172.26.9.143 netmask 255.255.240.0 broadcast 172.26.15.255
第二步,将不需要的信息给替换位空白字符
# ifconfig eth0 | sed -n '/.*inet/p' | sed 's/.*inet\s\+//g'
172.26.9.143 netmask 255.255.240.0 broadcast 172.26.15.255
接下来把ip地址后面的全部替换位空就行了
# ifconfig eth0 | sed -n '/.*inet/p' | sed 's/.*inet\s\+//g' | sed 's/\s\+.*//g'
172.26.9.143
下面我们来说说上面的例子,首先第一步我们使用了-n和p来获取我们想要的行。然后,我们将不需要的信息进行过滤,需要注意的时,正则中\s+表示至少匹配一个空格,但在这里需要在加号前使用转义字符\。
范例四
最后一个范例,我给出我昨天一个真实案例。需求是这样的,获取一段文本中的url地址,但不需要前面的http://。部分文本内容如下:
北京
上海
天津
重庆 |
山东: |
济南
青岛 下面我们分几步去完成该需求,首先,将不含url地址的行全部过滤 # sed -n '/http:/p' a.txt 然后,将不需要的信息全部替换位空白字符即可。先把http://及之前字符全部删除 sed -n '/http:/p' a.txt | sed 's/.*http:\/\///g' ,接着把双引号及之后字符全部删除 # sed -n '/http:/p' a.txt | sed 's/.*http:\/\///g' | sed 's/".*//g' 现在屏幕输出的内容如下 haikou.hellozx.com sanya.hellozx.com kunming.hellozx.com dali.hellozx.com xining.hellozx.com yinchuan.hellozx.com wulumuqi.hellozx.com …… 以上就是一文读懂shell编程三剑客之一的sed命令的详细内容,更多请关注 第一PHP社区 其它相关文章!
推荐阅读
-
本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ...
[详细]
蜡笔小新 2023-12-14 19:45:47
-
本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ...
[详细]
蜡笔小新 2023-12-14 18:23:25
-
-
本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ...
[详细]
蜡笔小新 2023-12-14 18:16:27
-
本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ...
[详细]
蜡笔小新 2023-12-14 17:15:19
-
本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ...
[详细]
蜡笔小新 2023-12-14 17:03:58
-
本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ...
[详细]
蜡笔小新 2023-12-14 20:08:28
-
本文介绍了一个PHP玩家基地系统的毕业设计,包括用户登录界面、游戏管理和玩家作品管理等功能。附带源码和运行环境,并提供免费赠送本源代码和数据库的方式,请私信获取详细信息。摘要共计约XXX字。 ...
[详细]
蜡笔小新 2023-12-14 19:16:11
-
Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ...
[详细]
蜡笔小新 2023-12-14 18:57:09
-
本文介绍了《中秋夜作》的翻译及原文赏析,以及诗人当代钱钟书的背景和特点。通过对诗歌的解读,揭示了其中蕴含的情感和意境。 ...
[详细]
蜡笔小新 2023-12-14 18:37:02
-
本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ...
[详细]
蜡笔小新 2023-12-14 18:18:21
-
本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ...
[详细]
蜡笔小新 2023-12-14 18:02:45
-
今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ...
[详细]
蜡笔小新 2023-12-14 17:58:15
-
本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ...
[详细]
蜡笔小新 2023-12-14 17:46:55
-
本文描述了作者第一次参加比赛的经历和感受。作者是小学六年级时参加比赛的唯一选手,感到有些紧张。在比赛期间,作者与学长学姐一起用餐,在比赛题目中遇到了一些困难,但最终成功解决。作者还尝试了一款游戏,在回程的路上感到晕车。最终,作者以110分的成绩取得了省一会的资格,并坚定了继续学习的决心。 ...
[详细]
蜡笔小新 2023-12-14 17:42:14
-
本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ...
[详细]
蜡笔小新 2023-12-14 17:06:58
-
爱爱爱爱你MLB-你
这个家伙很懒,什么也没留下!
|