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

印刷网站建设价格lamp 搭建wordpress

印刷网站建设价格,lamp 搭建wordpress,重庆信息发布平台,网站建设及管理工作岗位要求目录 一、正则表达式 1.1用法 1.2表示字符匹配 1.3表示次数 1.4表示位置锚定 1.5表示分组或其他 1.6扩展正则表达式 二、grep命令 三、awk命令 3.1awk与vim的区别 3.2awk的语法 3.3基础用法 test1.提取磁盘的分区利用率 test2.提取用户名和uid号 test3.提取ip地址…目录 一、正则表达式 1.1用法 1.2表示字符匹配 1.3表示次数 1.4表示位置锚定 1.5表示分组或其他 1.6扩展正则表达式 二、grep命令 三、awk命令 3.1awk与vim的区别 3.2awk的语法 3.3基础用法 test1.提取磁盘的分区利用率 test2.提取用户名和uid号  test3.提取ip地址  ​编辑 test4.awk的统计用法 3.4常见的内置变量 关于FS的使用  关于OFS的使用  关于RS的使用 为换行符 关于NF的使用 表示最后一列 关于NR的使用 表示行号 3.5模式 第一种模式为空直接处理 第二种模式为正则表达式 第三种NR行范围前面已经写过了 第四种内置变量值比较 3.6关系表达式扩展 3.7条件判断 3.8awk中的for循环 3.9数组 3.10awk 脚本 一、正则表达式 1.1用法 REGEXP Regular Expressions由一类特殊字符及文本字符所编写的模式其中有些字符元字符不表示字符字面意义而表示控制或通配的功能类似于增强版的通配符功能但与通配符不同通配符功能是用来处理文件名而正则表达式是处理文本内容中字符。 正则表达式被很多程序和开发语言所广泛支持vim, less,grep,sed,awk, nginx,mysql 等 在bash环境下正则表达式与通配符的区别 正则表达式是匹配字符串命令结果文本内容 一般与文本三剑客一起使用 通配符匹配文件名而是已经存在的文件一般与find一起使用 1.2表示字符匹配 元字符就是有特殊含义的字符 元字符含义. 匹配任意单个字符可以是一个汉字[] 匹配指定范围内的任意单个字符示例[zhou][0-9][a-zA-Z][^]匹配指定范围外的任意单个字符,示例[^zhou] [^a.z][:alnum:]字母和数字,即[0-9a-Za-z][:alpha:]代表任何英文大小写字符即[a-Za-z][:lower:]小写字母,示例:[[:lower:]],相当于[a-z][:upper:]大写字母[[:upper:]]相当于[A-Z][:blank:]空白字符空格和制表符[:space:]包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白,比[:blank:]包含的范围广[:cntrl:]不可打印的控制字符退格、删除、警铃...[:digit:]十进制数字[:xdigit:]十六进制数字[:graph:]可打印的非空白字符[:print:]可打印字符[:punct:]标点符号\w#匹配单词构成部分等价于[_[:alnum:]]\W#匹配非单词构成部分等价于[^_[:alnum:]]\S#匹配任何非空白字符。等价于 [^ \f\n\r\t\v]\s #匹配任何空白字符包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意Unicode正则表达式会匹配全角空格符##标注 \f换页符在文本编辑中它表示一个新页的开始。 \n换行符在文本编辑中它表示新的一行的开始。 \r回车符在文本编辑中它表示光标移动到当前行的末尾。 \t制表符在文本编辑中它表示一个制表位通常用于对齐文本。 \v垂直制表符在文本编辑中它表示一个垂直制表位通常用于对齐文本。 案例 [.]中括号中的点表示点本身不需要加转义字符 #r..t ..代表任意两个字符 区分正则表达式和通配符的区别 1.3表示次数 元字符功能*#匹配前面的字符任意次包括0次贪婪模式尽可能长的匹配.*#任意长度的任意字符,不包括0次\?#匹配其前面的字符出现0次或1次,即:可有可无\#匹配其前面的字符出现最少1次,即:肯定有且大于等于1次\{n\}#匹配前面的字符n次\{m,n\}#匹配前面的字符至少m次至多n次\{,n\} #匹配前面的字符至多n次,n\{n,\} #匹配前面的字符至少n次 1.4表示位置锚定 元字符功能^#行首锚定用于模式的最左侧$#行尾锚定用于模式的最右侧^PATTERN$#用于模式匹配整行^root$表示单独一行只有root^$#空行不包含空格行^[[:space:]]*$ #空白行\b,\#词首锚定用于单词模式的左侧(连续的数字字母下划线都算单词内部)\b,\#词尾锚定用于单词模式的右侧 ##过滤出空白行  [rootlocalhost /ceshi]#cat /etc/fstab |egrep -n ^[[:space:]]*$|cat -A grep ^[^#] /etc/fstab ##表示非#开头的行 [rootlocalhost /ceshi]#echo hello-root-------shan---123 |grep \b[a-z]*\b -o hello root shan [rootlocalhost /ceshi]#echo hello-root-------shan---123 |grep \b[[:alpha:]]*\b -o hello root shan [rootlocalhost /ceshi]#1.5表示分组或其他 分组( ) 将多个字符捆绑在一起当作一个整体处理如(root) 后向引用分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中这些变量的命名 方式为: \1, \2, \3, ... \1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符 1.6扩展正则表达式 表示次数 *   匹配前面字符任意次 ? 0或1次1次或多次 {n} 匹配n次 {m,n} 至少m至多n次 {,n}  #匹配前面的字符至多n次,nn可以为0 {n,} #匹配前面的字符至少n次,nn可以为0 表示分组 () 分组 分组() 将多个字符捆绑在一起当作一个整体处理如\(root\) 后向引用\1, \2, ... | 或者 a|b #a或b C|cat #C或cat (C|c)at #Cat或cat 扩展练习 1.表示qq号 [rootlocalhost /ceshi]#echo 1923834175 |grep \b[0-9]\{6,12\}\b 19238341752.表示邮箱 echo zhouqq.com |grep -E [[:alnum:]_][[:alnum:]_]\.[[:alnum:]_] 3.表示手机号 echo 13778420927|grep -E \b1[3456789][0-9]{9}\b 二、grep命令 grep 命令的语法grep [选项] ...查找条件 目标文件  选项 -colorauto 对匹配到的文本着色显示 -m  # 匹配#行后停止 grep -m 1 root /etc/passwd #多个匹配只取第一个 -v 显示不被pattern匹配到的行,即取反 grep -Ev ^[[:space:]]*#|^$ /etc/fstab -i 忽略字符大小写 -n 显示匹配的行号 -c 统计匹配的行数 grep -c root /etc/passwd #统计匹配到的行数 -o 仅显示匹配到的字符串 -q 静默模式不输出任何信息 -A # after, 后#行 grep -A3 root /etc/passwd #匹配到的行后3行业显示出来 -B # before, 前#行 -C # context, 前后各#行 -e 实现多个选项间的逻辑or关系,如grep –e ‘cat -e ‘dog file grep -e root -e bash /etc/passwd #包含root或者包含bash 的行 grep -E root|bash /etc/passwd -w 匹配整个单词 grep -w root /etc/passwd useradd rooter -E 使用ERE相当于egrep -F 不支持正则表达式相当于fgrep -f file 根据模式文件处理两个文件相同内容 把第一个文件作为匹配条件 -r   递归目录但不处理软链接 -R   递归目录但处理软链接 [rootlocalhost /ceshi]#grep -m 2 root /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin[rootlocalhost /ceshi]#cat /etc/passwd|grep -q \bxxxxx\b [rootlocalhost /ceshi]#echo $? 1 ##表示没有这个用户[rootlocalhost /ceshi]#cat /etc/passwd|grep -q xueyin [rootlocalhost /ceshi]#echo $? 0 ##表示有这个用户 ##表示匹配到的内容是后3行 [rootlocalhost /ceshi]#cat /etc/passwd|grep root -A 3 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/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[rootlocalhost /ceshi]#cat /etc/passwd|egrep root|bash [rootlocalhost /ceshi]#cat /etc/passwd|grep -e root -e bash [rootlocalhost /ceshi]#grep -rw root /etc/ ##本质上是过滤的文本内容但是前面会显示文件的路径以及文件内匹配到的root单词高亮##有趣统计/etc/文件夹下面有多少文件中有root单词 [rootlocalhost /ceshi]#grep -rw root /etc/|awk -F: {print $1}|sort|uniq -c|wc -l 151假设想要统计有多少个文件中含有root单词 [rootlocalhost /ceshi]#grep -rw root /etc/|awk -F: {print $1}|sort|uniq -c|wc -l 151三、awk命令 awkAho, Weinberger, Kernighan报告生成器格式化文本输出GNU/Linux发布的AWK目前由自 由软件基金会FSF进行开发和维护通常也称它为 GNU AWK 有多种版本 AWK原先来源于 AT T 实验室的的AWK NAWKNew awkAT T 实验室的AWK的升级版 GAWK即GNU AWK。所有的GNU/Linux发布版都自带GAWK它与AWK和NAWK完全兼容 GNU AWK 用户手册文档 The GNU Awk User’s Guide gawk模式扫描和处理语言可以实现下面功能 vim 是将整个文件加载到内存中 再进行编辑 受限你的内存 awk语言 读取一行处理一行 在 Linux/UNIX 系统中awk 是一个功能强大的编辑工具逐行读取输入文本默认以空格或tab键作为分隔符作为分隔并按模式或者条件执行编辑命令。而awk比较倾向于将一行分成多个字段然后进行处理。AWK信息的读入也是逐行 指定的匹配模式进行查找对符合条件的内容进行格式化输出或者过滤处理可以在无交互 的情况下实现相当复杂的文本操作被广泛应用于 Shell 脚本完成各种自动化配置任务。 ###awk的工作原理 第一步执行BEGIN{action;… }语句块中的语句 第二步从文件或标准输入(stdin)读取一行然后执行pattern{ action;… }语句块它逐行扫描文件 从第一行到最后一行重复这个过程直到文件全部被读取完毕。 第三步当读至输入流末尾时执行END{action;…}语句块 BEGIN语句块在awk开始从输入流中读取行之前被执行这是一个可选的语句块比如变量初始化、打印输出表格的表头等语句通常可以写在BEGIN语句块中END语句块在awk从输入流中读取完所有的行之后即被执行比如打印所有行的分析结果这类信息汇总都是在END语句块中完成它也是一个可选语句块pattern语句块中的通用命令是最重要的部分也是可选的。如果没有提供pattern语句块则默认执行{print}即打印每一个读取到的行awk读取的每一行都会执行该语句块##### BEGIN{}模式表示在处理指定的文本前需要先执行BEGIN模式中的指定动作 awk再处理指定的文本之后再执行END模式中的指定动作END{}语句中一般会放入打印结果等语句。 3.1awk与vim的区别 awk为加载一行处理一行可以接受比较大的文件处理 vim为先加载整个文件到内存中处理若内存不够大无法打开大文件 3.2awk的语法 awk [选项] 模式{处理动作}    ##一定要用单引号 3.3基础用法 awk patterm{action} #BEGIN{}模式表示在处理指定的文本前需要先执行BEGIN模式中的指定动作 awk再处理指定的文本之后再执行END模式中的指定动作END{}语句中一般会放入打印结果等语句。  test1.提取磁盘的分区利用率 df|awk {print $5}df|awk -F( |%) {print $5} ##一次性提取出不要百分号 df |awk -F[[:space:]]|% {print $5} df |awk -F[ %] {print $5} test2.提取用户名和uid号  cat /etc/passwd|awk -F: {print $1,$3} ##默认用空格分开 [rootlocalhost ~]#cat /etc/passwd|awk -F: {print $1:$3} #用冒号分隔开 [rootlocalhost ~]#cat /etc/passwd|awk -F: {print $1\t$3} #用制表符分隔开 test3.提取ip地址  [rootlocalhost /ceshi]#hostname -I 192.168.20.6 192.168.122.1 [rootlocalhost /ceshi]#hostname -I|awk {print $1} 192.168.20.6 [rootlocalhost /ceshi]#ifconfig ens33|sed -n 2p |awk {print $2} 192.168.20.6test4.awk的统计用法 [rootlocalhost /ceshi]#grep -c /bin/bash$ /etc/passwd 4 [rootlocalhost /ceshi]#cat /etc/passwd|awk {x}END{print x} 44 [rootlocalhost /ceshi]#cat /etc/passwd|wc -l 44 [rootlocalhost /ceshi]#cat /etc/passwd|awk /bash$/{x}END{print x} 43.4常见的内置变量 内置变量名称作用FS指定每行文本的字段分隔符默认为空格或制表符tab。与“-F”作用相同OFS输出时的分隔符NF当前处理的行的字段个数NR当前处理的行的行号序数$0当前处理的行的整行内容$n当前处理行的第n个字段第n列FILENAME被处理的文件名RS行分隔符。awk从文件上读取资料时将根据RS的定义就把资料切割成许多条记录而awk一次仅读入一条记录进行处理。预设值是\n 关于FS的使用  [rootlocalhost /ceshi]#awk -v FS: {print $1FS$3} /etc/passwd ##与 -F: [rootlocalhost /ceshi]#awk -F: {print $1:$3} /etc/passwd##拓展-F -FS一起使用 -F 的优先级高 关于OFS的使用  [rootlocalhost ~]#cat /etc/passwd|awk -v OFS-- -F: {print $1,$3}|head -n3 root--0 bin--1 daemon--2 [rootlocalhost ~]#cat /etc/passwd|awk -v OFS-- -v FS: {print $1,$3}|head -n3 root--0 bin--1 daemon--2 关于RS的使用 为换行符 [rootlocalhost ~]#echo $PATH|awk -v RS: {print} /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /root/bin关于NF的使用 表示最后一列 [rootlocalhost ~]#df |awk {print $NF} ##挂载点 [rootlocalhost ~]#df |awk {print $(NF-1)} ##使用百分比关于NR的使用 表示行号 [rootlocalhost ~]#cat /etc/passwd |head -n3|awk {print NR,$0}NR也可以用与模式中使用表示匹配对应的行 [rootlocalhost ~]#cat /etc/passwd |head -n3|awk {print NR,$0} ##打印行号 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin[rootlocalhost ~]#cat /etc/passwd|awk NR1,NR3{print NR,$0} ##只打印第1行到第3行 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin[rootlocalhost ~]#cat /etc/passwd|awk NR1||NR3{print NR,$0} ##只打印第1行和第3行||表示或者 1 root:x:0:0:root:/root:/bin/bash 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin[rootlocalhost ~]#cat /etc/passwd|head -n8|awk (NR%2)0{print NR,$0} ##行号除2取余为0只打印偶数行 2 bin:x:1:1:bin:/bin:/sbin/nologin 4 adm:x:3:4:adm:/var/adm:/sbin/nologin 6 sync:x:5:0:sync:/sbin:/bin/sync 8 halt:x:7:0:halt:/sbin:/sbin/halt[rootlocalhost ~]#cat /etc/passwd|head -n8|awk !(NR%2)0{print NR,$0} ##偶数行取反是奇数 1 root:x:0:0:root:/root:/bin/bash 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin 5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown[rootlocalhost ~]#cat /etc/passwd|head -n8|awk (NR%2)1{print NR,$0} ##行号除2取余为1只打印奇数行 1 root:x:0:0:root:/root:/bin/bash 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin 5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown[rootlocalhost ~]#cat /etc/passwd|head -n3|awk NR!1{print NR,$0} ##不打印第一行 2 bin:x:1:1:bin:/bin:/sbin/nologin 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin [rootlocalhost ~]# 关于FNR的使用 表示一次处理多个文件但是行号不合计 3.5模式 awk [选项] 模式{处理动作} PATTERN模式:根据pattern条件过滤匹配的行再做处理 第一种模式为空直接处理 如果模式为空表示每一行都匹配成功相当于没有额外条件 awk -F: {print $1,$3} /etc/passwd 第二种模式为正则表达式 /regular expression/仅处理能够模式匹配到的行需要用/ /括起来固定搭配 awk -F: /^root/,/^ftp/{print $1,$3} /etc/passwdawk -F: /^root/||/^ftp/{print $1,$3} /etc/passwd 第三种NR行范围前面已经写过了 不支持使用行号但是可以使用变量NR 间接指定行号加上比较操作符 或者逻辑关系 比较操作符 , !, , , , #####逻辑 与并且关系 ##如NR3 NR6 这种与NR3,NR6一样 或||或者关系 ##如NR1||NR3 非!取反 ##如NR!1 第四种内置变量值比较 [rootlocalhost ~]#awk -F: $1root||$1ftp{print NR,$1,$3} /etc/passwd 1 root 0 12 ftp 14 [rootlocalhost ~]#awk -F: $NF/bin/bash{print NR,$1,$3} /etc/passwd 1 root 0 41 xueyin 1000 43 lisi 1001 44 zhangsan 1002 [rootlocalhost ~]#awk -F: $31000{print NR,$1,$3} /etc/passwd 35 nfsnobody 65534 41 xueyin 1000 43 lisi 1001 44 zhangsan 1002 3.6关系表达式扩展 关系表达式结果为“真”才会被处理 真结果为非0值非空字符串 假结果为空字符串或0值 补充n的用法实际上就是不匹配第一行 与NR!1一个意思 [rootlocalhost ~]#ss -natp|awk n{print $1}|sort|uniq -c1 ESTAB12 LISTEN [rootlocalhost ~]#ss -natp|awk n{a[$1]}END{for(i in a){print a[i],i}} 12 LISTEN 1 ESTAB [rootlocalhost ~]#[rootlocalhost ~]#seq 4|awk i!i ##类似(NR%2)0 1 3 [rootlocalhost ~]#seq 4|awk !(i!i) 2 4 [rootlocalhost ~]#seq 4|awk -v i1 i!i ##类似(NR%2)1 2 4 3.7条件判断 awk  选项   模式 {actions}  条件判断写在  actions里 if(condition){statement;…}[else statement] if(condition1){statement1}else if(condition2){statement2}else if(condition3){statement3}...... else {statementN}condition1:条件 statement1:语句if语句awk的if语句也分为单分支、双分支和多分支 单分支为if(判断条件){执行语句} 双分支为if(判断条件){执行语句}else{执行语句} 多分支为if(){}else if(){}else{} [rootlocalhost ~]#cat /etc/passwd|awk -F: {if($31000)print $1,$3} nfsnobody 65534 lisi 1001 zhangsan 1002 [rootlocalhost ~]#cat /etc/passwd|awk -F: $31000{print $1,$3} nfsnobody 65534 lisi 1001 zhangsan 1002 [rootlocalhost ~]#cat /etc/passwd|awk -F: {if($3uid){uid$3;user$1;sh$NF}}END{print user,uid,sh} nfsnobody 65534 /sbin/nologin 3.8awk中的for循环 for(expr1;expr2;expr3) {statement;…} for(variable assignment;condition;iteration process) {for-body} for(var in array) {for-body}[rootlocalhost ~]#awk BEGIN{for(i0;i100;i){sumi}{print sum}} 5050 3.9数组 awk数组特性 awk的数组是关联数组(即key/value方式的hash数据结构)索引下标可为数值(甚至是负数、小数等)也可为字符串 1. 在内部awk数组的索引全都是字符串即使是数值索引在使用时内部也会转换成字符串 2. awk的数组元素的顺序和元素插入时的顺序很可能是不相同的 awk数组支持数组的数组 length数组名 统计数组下标的种类即关联数组的长度 遍历 for(var in array) {for-body}##注意在awk中关联数组的下标名称如果是字符串需要加双引号赋值也需要加双引号 awk BEGIN{students[1]zhaizong;students[2]hezong;students[3]haizong;for(x in students){print x:students[x]}} [rootlocalhost /ceshi]#cat a.txt |awk {a[$0]}END{for(i in a)print i}[rootlocalhost /ceshi]#cat a.txt |awk !a[$0]3.10awk 脚本 将awk程序写成脚本直接调用或执行   [rootlocalhost /ceshi]#cat test.txt {if($31000)print $1,$3} [rootlocalhost /ceshi]#awk -F: -f test.txt /etc/passwd nfsnobody 65534 xueyin 1000 lisi 1001 zhangsan 1002 [rootlocalhost /ceshi]#
http://www.zqtcl.cn/news/733774/

相关文章:

  • 国外免费网站服务器链接幼教网站建设分析
  • 做药品网站有哪些陕西专业网站建设价格
  • 网络公司做网站网站 服务器选择
  • 湖南省重点建设项目办公室网站河南省住建局官网
  • 建设网站企业网上银行登录入口官方论坛系统
  • 嘉定建设机械网站合肥制作网页设计
  • 外链网站有哪些空港经济区内的建设工程网站
  • 企业网站开发价阿里云快速备份网站
  • 大型电子商务网站建设成本ai网页生成
  • 网页播放视频 网站开发常用网站搜索引擎
  • 制作一个购物网站要多少钱做创意小视频的网站
  • 淇县网站建设软件定制流程
  • 17网站一起做网店代发流程wordpress悬浮 联系
  • 如何查网站外链快速开发平台 免费开源
  • 做网站有哪些流程怎么做网站电影
  • 做街机棋牌上什么网站发广告网站策划和运营
  • 建网站是什么专业类别阳江网红人物
  • 网站建设工作描述株洲市建设质监站网站
  • 做网站 橙色怎么搭配吐鲁番市网站建设
  • 企业信息网站衡阳高端网站建设
  • 中小学网站建设小程序开发费用是多少
  • 网站开发项目可行性分析单位logo设计
  • 做最好的美食分享网站网站源码网站
  • 宝塔搭建app教程360优化大师下载
  • 杭州网站制作 乐云践新开发公司竣工员工奖励计划
  • 绍兴市越城区建设局网站网站策划运营方案书
  • 怎么查网站备案信息查询wordpress 新安装 慢
  • 做一个卖东西的网站深圳市住房和建设局网站变更
  • 一个公司做几个网站绵阳房产网
  • 广州做网站服务怎样做网站反链