sed命令的使用方法有哪些
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容主要讲解"sed命令的使用方法有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"sed命令的使用方法有哪些"吧!sed是一种在线编辑器,它一次处
千家信息网最后更新 2025年01月20日sed命令的使用方法有哪些
本篇内容主要讲解"sed命令的使用方法有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"sed命令的使用方法有哪些"吧!
sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。
sed用法
❝
使用sed可以实现grep的大部分功能,而且还可以查找替换。
语法:
sed [options] ‘command’ filename
sed [options] -f scriptfile filename
Options:
-n:-n选项和p命令一起使用表示打印
-e:等价于–expression,多点编辑,在一行执行多条命令
用sed实现匹配(grep)功能=打印有root字符串的行
[root@cham2 sed]# sed -n '/root/'p test.txtroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin[root@cham2 sed]# sed -nr '/r+o/'p test.txtroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologinsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin[root@cham2 sed]# sed -nr '/o*t/'p test.txtroot:x:0:0:root:/root:/bin/bashshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halo1t:/sbin:/sbin/haltoperator:x:11:0:operator:/root:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:998:996:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
忽略大小写(I)
[root@cham2 sed]# sed -n '/nologin/'Ip test.txtbin:x:1:1:bin:/bin:/sbin/NOLOGINdaemon:x:2:2:daemon:/sbin:/sbin/nologinad11om:x:3:4:ad1om:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spoool/lpd:/sbin/nologinmail:x:8:12:mail:/var/spoooooool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:998:996:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin
打印指定行(p)
[root@cham2 sed]# sed -n '2'p test.txtbin:x:1:1:bin:/bin:/sbin/NOLOGIN[root@cham2 sed]# sed -n '2,5'p test.txtbin:x:1:1:bin:/bin:/sbin/NOLOGINdfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345222222:r.o:dfdsfdsgdaemon:x:2:2:daemon:/sbin:/sbin/nologin[root@cham2 sed]# sed -n '15,$'p test.txtnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:998:996:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin
-e选项允许在同一行里执行多条命令(把第一行打印出来并匹配bus)
[root@cham2 sed]# sed -e '1'p -e '/bus/'p -n test.txtroot:x:0:0:root:/root:/bin/bashsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologin[root@cham2 sed]# sed -e '1'p -e '/root/'p -n test.txtroot:x:0:0:root:/root:/bin/bashroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin
说明 "sed -e ‘1’p -e ‘/bus/’p -n test.txt"该命令的意思是:打印第一行,同时也打印出匹配有‘bus’的行。当打印的内容和匹配的内容相同时,会分别显示,即:两个命令同时进行但相对独立。
删除指定行(d)
[root@cham2 sed]# sed '1,10'd test.txtmail:x:8:12:mail:/var/spoooooool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:998:996:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin[root@cham2 sed]# sed '1,18'd test.txtpolkitd:x:998:996:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin
注: 这种方法并不会删除文件的内容,知识打印在屏幕上的内容删除了指定行。那么如何直接删除文件中指定的内容呢?如下:
[root@cham2 sed]# wc -l test.txt23 test.txt[root@cham2 sed]# sed -i '1,20'd test.txt[root@cham2 sed]# wc -l test.txt3 test.txt[root@cham2 sed]# cat test.txtpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin[root@cham2 sed]# sed -i '/SSH/'d test.txt[root@cham2 sed]# cat test.txtpostfix:x:89:89::/var/spool/postfix:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin
查找替换(s) 类似于vim中的查找替换
[root@cham2 sed]# sed '1,10s/root/toor/g' test.txttoor:x:0:0:toor:/toor:/bin/bashbin:x:1:1:bin:/bin:/sbin/NOLOGINdfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345222222:r.o:dfdsfdsgdaemon:x:2:2:daemon:/sbin:/sbin/nologinad11om:x:3:4:ad1om:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spoool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halo1t:/sbin:/sbin/haltmail:x:8:12:mail:/var/spoooooool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:998:996:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinchrony:x:997:995::/var/lib/chrony:/sbin/nologin此处如果不使用head命令,将会显示test.txt全部内容。[root@cham2 sed]# sed '1,10s/root/toor/g' test.txt | head -3toor:x:0:0:toor:/toor:/bin/bashbin:x:1:1:bin:/bin:/sbin/NOLOGINdfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345[root@cham2 sed]# cat test.txt | head -3root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/NOLOGINdfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345
替换每行第一个字符串和最后一个字符串的位置:
[root@cham2 sed]# head -3 test.txtroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/NOLOGINdfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345[root@cham2 sed]# head -3 test.txt |sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/'/bin/bash:x:0:0:root:/root:root/sbin/NOLOGIN:x:1:1:bin:/bin:bin325345345:1241124:jksdfhdskjf:sfdsf:rao:dfsdfdsfsdfs
说明: 小括号内的字符串可以用反斜杠跟数字组合按顺序来代替。
在每一行行首添加指定字符:
[root@cham2 sed]# head -3 test.txt | sed -r 's/(.*)/AB:\1/'AB:root:x:0:0:root:/root:/bin/bashAB:bin:x:1:1:bin:/bin:/sbin/NOLOGINAB:dfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345[root@cham2 sed]# head -3 test.txt | sed -r 's/(.*)/AB:&/'AB:root:x:0:0:root:/root:/bin/bashAB:bin:x:1:1:bin:/bin:/sbin/NOLOGINAB:dfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345
说明: 在此&代表前面括号中的内容="\ 1"
到此,相信大家对"sed命令的使用方法有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
内容
命令
方法
一行
字符
处理
字符串
使用方法
缓冲区
缓冲
功能
同时
多条
屏幕
括号
文件
r.o
学习
实用
更深
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
防得住 网络安全
南通麻豆互联网科技有限公司
十年磨一剑软件开发
释然和贤宝宝的服务器纷争
软件开发拼多多
浪潮服务器怎么开热插拔
ucsc数据库储存了什么
网络安全调剂大学
工资处理系统数据库课设
网络技术大咖
系统要数据库吗
c盘扩容后无法连接数据库
机械手和agv用什么软件开发的
浪潮服务器管理口镜像安装
cash 数据库
上海树根科技互联网有限公司
国产数据库云图
加强网络安全舆情微信微博
格兰仕软件开发岗
江苏数据库安全箱定制价格
中级软件开发合同的会计分录
网络安全常识10条
迅雷云播服务器
软件开发培训教育
网络技术 负面影响
常规数据库管理软件
部队网络安全自我反思
计算机网络技术技能基础测试
完善更新人员队伍数据库通知
在数据库中as是什么意思