当前位置: 首页 > news >正文

汕头龙湖网站建设国际人才网app

汕头龙湖网站建设,国际人才网app,惠州抖音seo,职业生涯规划2019独角兽企业重金招聘Python工程师标准>>> 导读sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

导读sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。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.txt 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin[root@cham2 sed]# sed -nr '/r+o/'p test.txt 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin[root@cham2 sed]# sed -nr '/o*t/'p test.txt 
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halo1t:/sbin:/sbin/halt
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

忽略大小写(I)

[root@cham2 sed]# sed -n '/nologin/'Ip test.txt 
bin:x:1:1:bin:/bin:/sbin/NOLOGIN
daemon:x:2:2:daemon:/sbin:/sbin/nologin
ad11om:x:3:4:ad1om:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spoool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spoooooool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin

打印指定行(p)

[root@cham2 sed]# sed -n '2'p test.txt
bin:x:1:1:bin:/bin:/sbin/NOLOGIN[root@cham2 sed]# sed -n '2,5'p test.txt
bin:x:1:1:bin:/bin:/sbin/NOLOGIN
dfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345
222222:r.o:dfdsfdsg
daemon:x:2:2:daemon:/sbin:/sbin/nologin[root@cham2 sed]# sed -n '15,$'p test.txt
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin

-e选项允许在同一行里执行多条命令(把第一行打印出来并匹配bus)

[root@cham2 sed]# sed -e '1'p -e '/bus/'p -n test.txt
root:x:0:0:root:/root:/bin/bash
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin[root@cham2 sed]# sed -e '1'p -e '/root/'p -n test.txt 
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
operator: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.txt
mail:x:8:12:mail:/var/spoooooool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin[root@cham2 sed]# sed '1,18'd test.txt
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin

注: 这种方法并不会删除文件的内容,知识打印在屏幕上的内容删除了指定行。那么如何直接删除文件中指定的内容呢?如下:

[root@cham2 sed]# wc -l test.txt
23 test.txt
[root@cham2 sed]# sed -i '1,20'd test.txt
[root@cham2 sed]# wc -l test.txt
3 test.txt
[root@cham2 sed]# cat test.txt
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
[root@cham2 sed]# sed -i '/SSH/'d test.txt
[root@cham2 sed]# cat test.txt
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin

查找替换(s) 类似于vim中的查找替换

[root@cham2 sed]# sed '1,10s/root/toor/g' test.txt
toor:x:0:0:toor:/toor:/bin/bash
bin:x:1:1:bin:/bin:/sbin/NOLOGIN
dfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345
222222:r.o:dfdsfdsg
daemon:x:2:2:daemon:/sbin:/sbin/nologin
ad11om:x:3:4:ad1om:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spoool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halo1t:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spoooooool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
此处如果不使用head命令,将会显示test.txt全部内容。[root@cham2 sed]# sed '1,10s/root/toor/g' test.txt | head -3
toor:x:0:0:toor:/toor:/bin/bash
bin:x:1:1:bin:/bin:/sbin/NOLOGIN
dfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345[root@cham2 sed]# cat test.txt | head -3
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/NOLOGIN
dfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345

替换每行第一个字符串和最后一个字符串的位置:

[root@cham2 sed]# head -3 test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/NOLOGIN
dfsdfdsfsdfs: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:bin
325345345: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/bash
AB:bin:x:1:1:bin:/bin:/sbin/NOLOGIN
AB: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/bash
AB:bin:x:1:1:bin:/bin:/sbin/NOLOGIN
AB:dfsdfdsfsdfs:1241124:jksdfhdskjf:sfdsf:rao:325345345

说明: 在此&代表前面括号中的内容=“\ 1”

原文来自:http://www.linuxprobe.com/sed-tools-linux.html

转载于:https://my.oschina.net/ssdlinux/blog/1615203

http://www.yayakq.cn/news/518185/

相关文章:

  • 俄文网站设计寿县住房与城乡建设局网站
  • 石家庄网站推广软件h5案例
  • dw织梦做网站设计之家效果图
  • 东莞品牌网站建设费用企业做的网站费入什么科目
  • 网站中的图片展示功能该设计什么合肥城乡建设网站
  • 做网站建设网站制作旺店通erp多少钱一年
  • vs网站开发入门nodejs可以做网站么
  • 东莞市手机网站wordpress 参数传人
  • 最新网站建设wordpress百度统计代码
  • 男生做男生网站在那看小微企业如何注册
  • 做博客网站赚钱微信小程序制作详细流程
  • 网站没有收录怎么办做网站一般都用什么字体
  • 小说网站建站程序百度拍照搜题
  • 网站源码下载 用户注册菏泽郓城网站建设
  • 服务类的网站怎么做WordPress 4.9添加备案号
  • 网络注册公司怎么注册seo关键词优化哪个平台好
  • 无锡企业做网站网站的死链
  • 创建官方网站赤峰建设厅官方网站
  • 小县城做网站开发wordpress主题
  • 网站制作学费多少钱网站推广是怎么做的
  • 如何识别一个网站是否做的好网络推广计划书
  • php网站开发待遇网页模板源代码之家
  • 怎么给网站上传附件设计师之家官网首页
  • 欧美 手机网站模板下载 迅雷下载 迅雷下载地址女性开源网站
  • 青岛网站运营自然资源部网站绿色矿山建设
  • html网站底部导航栏怎么做中交路桥建设有限公司是国企还是央企
  • 大兴网站建设报价哪个网站可以做加工代理的
  • 网站有个栏目不想被搜索引擎收录要怎么办阿里巴巴官网网址是多少
  • 美艺网站建设如何做个网站做cpa
  • 山西省网站建设价格电子商务网站建设与维护 试卷