用php做网站要多久福建设计网站

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

用php做网站要多久,福建设计网站,二维码转短链接生成器,wordpress美术馆插件文章目录八、shell编程之sed8.1 工作原理8.2 sed基本语法8.3 模式空间中的编辑操作8.3.1 地址定界8.3.2 常用编辑命令8.4 sed扩展八、shell编程之sed 8.1 工作原理 sed是一种流编辑器#xff0c;它是文本处理中非常有用的工具#xff0c;能够完美的配合正则表达式使用… 文章目录八、shell编程之sed8.1 工作原理8.2 sed基本语法8.3 模式空间中的编辑操作8.3.1 地址定界8.3.2 常用编辑命令8.4 sed扩展八、shell编程之sed 8.1 工作原理 sed是一种流编辑器它是文本处理中非常有用的工具能够完美的配合正则表达式使用处理时把当前处理的行存储在临时缓冲区中称为模式空间接着用sed命令处理缓冲区中的内容处理完成后把缓冲区的内容送往屏幕。接着处理下一行这样不断重复直到文件末尾。文件内容并没有改变。
sed的特点 1sed命令是将一系列的编辑命令应用于一批文本的理想工具。 2sed命令是一个非交互式的文本编辑器它可以对来自文本文件以及标准输入的文本进行编辑。其中标准输入可以是来自键盘、文件重定向、字符串、变量或者是管道的文本。 3sed命令会从文件或者标准输入中一次读取一行数据将其复制到缓冲区最多8192字节然后读取命令行或者脚本的编辑子命令对缓冲区中的文本行进行编辑。重复此过程一直到所有的文本行都处理完毕。 8.2 sed基本语法 sed OPTIONS… [SCRIPT] [INPUTFILE…]常用的选项 -n–quiet–silent不输出模式空间中的内容使用安静模式在一般sed的用法中所有来自STDIN的数据一般都会被列出到屏幕上但如果加上-n参数后则只有经过sed特殊处理的那一行才会被列出来-i直接编辑原文件而不是由屏幕输出默认不对原文件进行操作 -e直接在命令行模式上进行sed的动作编辑多个子命令之间也可以用分号隔开 sed -e command1;command2… filename 或者 sed -e command1 -e command2 ……filename -r使用扩展正则表达式 -f直接将sed的动作写在一个文件内-f filename则可以执行filename内的sed动作。8.3 模式空间中的编辑操作 8.3.1 地址定界 1##为数字指定要进行处理操作的行1表示第一行 2\(表示最后一行多个文件进行操作的时候为最后一个文件的最后一行 3/regexp/表示能够被regexp匹配到的行 regexp即基于正则表达式的匹配 4/regexp/I匹配时忽略大小写 5%regexp%: 任何能够被regexp匹配到的行换用%用其他字符也可以如#为边界符号 6addr1,addr2指定范围内的所有的行范围选定 常用地址定界表示方式 a0/regexp/从起始行开始到第一次能够被regexp匹配到的行。 b/regexp/,/regexp/被模式匹配到的行内的所有的行。 7first~ step指定起始的位置及步长例如1~2表示1,3,5… 8addr1,N指定行以及以后的N行      addr1,~N指定行开始的N行 注意事项: 1、如果没有指定地址表示命令将应用于每一行 2、如果只有一个地址表示命令将应用于这个地址匹配的所有行 3、如果指定了由逗号分隔的两个地址表示命令应用于匹配第一个地址和第二地址之间的行(包括这两行) 4、如果地址后面跟有感叹号表示命令将应用于不匹配该地址的所有行 8.3.2 常用编辑命令 1d删除匹配到的行 2p打印当前模式空间内容 3a \textappend,表示在匹配到的行之后追加内容 4i \textinsert,表示在匹配到的行之前追加内容 5c \textchange,表示把匹配到的行和给定的文本进行交换 6s/regexp/replacement/flages查找替换,替换regexp匹配到的内容其中/可以用其他字符代替例如 其他编辑命令 常用的flages g全局替换默认只替换第一个 i 不区分大小写 p如果成功替换则打印 7r 读入文件内容追加到匹配行后面 8R 读入文件一行内容追加到匹配行后面 9y y/source/dest/ 固定长度替换要求替换的字符串长度相等 10w /path/to/somefile将匹配到的文件内容追加到指定的文件末尾 sed s/north/hello/ datafile --替换每行第一个north sed s/north/hello/g datafile --全部替换 sed 1 s/north/hello/g datafile --替换第一行所有的north sed 1 s/north/hello/ datafile --替换第一行第一个north sed 1 s/north/hello/2 datafile --只替换第一行第二个north 巧用替换删除内容不是删除行 sed s/north// datafile --删除所有行的第一个north sed s/north//g datafile --删除全部的north sed 1 s/north//2 datafile --删除第一行第二个 sed s/^.// datafile --删除每行第一个字符 sed s/^\(..\)./\1/ datafile --删除第3个字符 sed s/^\[a-zA-Z0-9]*\// datafile --删除每行第一个单词8.4 sed扩展 cat person.txtKOF 101,chensiqi,CEO 102,zhangyang,CTO 103,Alex,COO 104,yy,CFO 105,feixue,CIO KOF sed如何取不连续的行 sed -n 1p;3p;5p person.txt 特殊符号{}的使用 sed -n 2,4p; person.txt //命令说明-n去掉默认输出2,4p输出2到4行内容输出全部的行的行号 sed -n 2,4{p;} person.txt //命令说明‘24{p;}’代表统一输出24行的行号和内容 拓展 [rootlocalhost test6]# seq 6 | sed :a;N;s/\n/,/;b a 1,2,3,4,5,6 [rootlocalhost test6]# seq 6 | sed :a;N;s/\n/,/;t a 1,2,3,4,5,6 8.5 sed案例 1、把/etc/passwd 复制到/root/test.txt用sed打印所有行 [rootlocalhost ~]# sed -n 1,\)p test.txt [rootlocalhost ~]# sed -n p test.txt 2、打印test.txt的3到10行 [rootlocalhost ~]# sed -n 3,10p test.txt 3、打印test.txt 中包含’root’的行 [rootlocalhost ~]# sed -n /root/p test.txt4、删除test.txt 的15行以及以后所有行 [rootlocalhost ~]# sed -i 15,\(d test.txt [rootlocalhost ~]# sed -e 15,\)d test.txt(只会在命令行删除不会真的删除原文件内容)等 同于[rootlocalhost ~]# sed 15,\(d passwd 5、删除test.txt中包含’bash’的行 [rootlocalhost ~]# sed /bash/d test.txt 6、替换test.txt 中’root’为’toor’ [rootlocalhost ~]# sed s/root/toor/g test.txt 7、替换test.txt中’/sbin/nologin’为’/bin/login’ [rootlocalhost ~]# sed s#/sbin/nologin#/bin/login# test.txt 8、删除test.txt中5到10行中所有的数字 [rootlocalhost ~]# sed 5,10s/[0-9]//g test.txt 9、删除test.txt 中所有特殊字符除了数字以及大小写字母 [rootlocalhost ~]# sed s/[^0-9a-zA-Z]//g test.txt 10、在test.txt 20行到末行最前面加’aaa:’ [rootlocalhost ~]# sed 20,\)s/^.$/aaa:/g test.txt 11、复制/etc/grub2.cfg到/root/grub2.cfg,删除文件中所有以空白开头的行行首的空白字符 [rootlocalhost ~]# sed s/^[[:space:]]// grub2.cfg 12、删除/etc/fstab文件中所有以#开头后面至少跟一个空白字符的行的行首的#和空白字符 [rootlocalhost ~]# sed s/^#[[:space:]]// /etc/fstab 13、给文件/root/anaconda-ks.cfg每一行行首增加#号 [rootlocalhost ~]# sed s/^.$/#/ /root/anaconda-ks.cfg 14、在/etc/fstab文件中不以#开头的行的行首增加#号 [rootlocalhost ~]# sed s/^[^#]/#/ /etc/fstab 15、处理/etc/sysconfig/network-scripts/路径,使用grep和sed命令取出其目录名和基名 [rootlocalhost ~]# echo /etc/sysconfig/network-scripts/ |sed -r s#^/(.)/(.)/#\1# etc/sysconfig [rootlocalhost ~]# echo /etc/sysconfig/network-scripts/ |sed -r s#^/(.)/(.)/#\2# network-scripts [rootlocalhost ~]# echo /etc/httpd/conf.d/host.conf | sed -r s#(^/./) [^/].#\1# /etc/httpd/conf.d/ [rootlocalhost ~]# echo /etc/httpd/conf.d/host.conf | sed -r s#^/./([^/].)#\1# host.conf [rootlocalhost ~]# basename /etc/httpd/conf.d/host.conf host.conf [rootlocalhost ~]# dirname /etc/httpd/conf.d/host.conf /etc/httpd/conf.d [rootlocalhost ~]# echo /etc/sysconfig/network-scripts/|grep -o -E [^/]/? $|grep -o -E ^[^/] network-scripts [rootlocalhost ~]# echo /etc/sysconfig/network-scripts/|grep -o -E
(^/([^/]/)
[^[:space:]])|^/|grep -o -E ^/([^/]/)*|grep -o -E (/[^/])|^/ /etc/sysconfig 16、利用sed 取出ifconfig命令中本机的IPv4地址 [rootlocalhost ~]# ifconfig |sed -n 2p | sed -r s/.inet[[:space:]]// | sed -r s/[[:space:]]netmask.// 192.168.168.128 17、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数 [rootlocalhost ~]# ls /mnt/Packages/|grep rpm$|sed -r s.. (.).rpm\1|sort|uniq -c 1085 i686 1216 noarch 2319 x86_64