首页>>帮助中心>>美国VPSsed-如何操作非交互式流编辑器

美国VPSsed-如何操作非交互式流编辑器

2025/4/25 30次

美国VPS注:sed 是逐行处理的

sed文本处理工具的用法:



用法1:前置命令 | sed [选项] '条件指令'
用法2:sed [选项] '条件指令' 文件.. ..
相关说明如下:

条件可以是行号或者/正则/
没有条件时,默认为所有条件
指令可以是增、删、改、查等指令
默认sed会将所有输出的内容都打印出来,可以使用-n屏蔽默认输出
选项中可以使用-r选项,让sed支持扩展正则
下面是介绍一些选项和基本用法



sed命令的常用选项如下:

-n(屏蔽默认输出,默认sed会输出读取文档的全部内容)

-r(让sed支持扩展正则)/正则/

-i(sed直接修改源文件,默认sed只是通过内存临时修改文件,源文件无影响)

sed 的常用条件指令

p 打印

d 删除

s/old/new/ 替换 也可用来做一些字符串的删除



下面介绍一下具体的用法

指令p



[root@svr5 ~]# sed '1p' /etc/hosts 打印文件的第一行 但由于没有加-n选项所以默认会打印整个文件
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6


[root@svr5 ~]# sed -n '1p' /etc/hosts 打印文件的第一行 (屏蔽默认输出)
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
01. [root@svr5 ~]# sed -n '3,5p' /etc/passwd 打印第3到5行



[root@svr5 ~]# sed -n '3p;5p' /etc/passwd 打印第3和5行
[root@svr5 ~]# sed -n '3,+10p' /etc/passwd 打印第3以及后面的10行
[root@svr5 ~]# sed -n '1~2p' /etc/passwd 打印奇数行 【这里就是打印 1 1+2 1+2+2......】
[root@svr5 ~]# sed -n '2~2p' /etc/passwd 打印偶数行
[root@svr5 ~]# sed -n '$=' /etc/passwd 输出文件的行数
d 指令同p指令 测试时可不加-n选项可以直观看出效果



s/old/new/ 替换指令



[root@svr5 ~]# vim test.txt //新建素材
2017 2011 2018
2017 2017 2024
2017 2017 2017
[root@svr5 ~]# sed 's/2017/xxxx/' test.txt 把每行的第一个2017替换成xxxx
[root@svr5 ~]# sed 's/2017/xxxx/g' test.txt 把每行所有的2017替换成xxxx
[root@svr5 ~]# sed 's/2017/xxxx/2' test.txt 把每一行的第二个2017替换成xxxx
[root@svr5 ~]# sed 's/2017//2' test.txt 删除每一行的第二个2017


下面介绍一下sed的一些正则用法



[root@svr5 ~]# sed -n '/^root/p' /etc/passwd 找出以root开头的并打印

[root@svr5 ~]# sed -n '/bash$/p' /etc/passwd 找出以bash结尾的并打印

[root@svr5 ~]# sed 's#/bin/bash#/sbin/sh#' /etc/passwd 将/bin/bash替换成/sbin/sh 【这里相当于s#old#new#】



[root@svr5 ~]# cat nssw.txt 新建素材
Hello the world
ni hao ma beijing

[root@svr5 ~]# sed 's/.//2 ; s/.$//' nssw.txt
删除文件中每行的第二个、最后一个字符分两次替换操作,第一次替换掉第2个字符,第二次替换掉最后一个字符

[root@svr5 ~]# sed -r 's/^(.)(.*)(.)$/\3\2\1/' nssw.txt 将文件中每行的第一个、倒数第1个字符互换
将每行文本拆分为“第1个字符”、“中间的所有字符”、“倒数第1个字符”三个部分,然后通过替换操作重排顺序为“3-2-1”

[root@svr5 ~]# sed 's/([A-Z])/[\1]/g' nssw.txt 为文件中每个大写字母添加括号使用 “()”可实现保留功能
注:1.正则的用法用法还有很多就不一 一列举了具体可以按实际的要求操作sed默认不支持扩展正则所以使用扩展正则时需加-r选项

2.建议在使sed修改文件是先不要加-i选项测试无误后方可加上-i选项

购买使用一诺网络美国VPS,可以极大降低初创企业、中小企业以及个人开发者等用户群体的整体IT使用成本,无需亲自搭建基础设施、简化了运维和管理的日常工作量,使用户能够更专注于自身的业务发展和创新。美国VPS低至49元/月,购买链接:https://www.enuoidc.com/vpszq.html?typeid=3

版权声明

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们996811936@qq.com进行处理。