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

古镇免费网站建设杭州网站建设模板

古镇免费网站建设,杭州网站建设模板,建设部四库一平台查询,微信网站制作合同目录 1.筛选给定时间范围内的日志 2.统计独立IP 案列 需求 代码 运行结果 3.根据某字段去重 案例 运行结果 4.正则表达式 1#xff09;认识正则 2#xff09;匹配字符 3#xff09;匹配次数 4#xff09;位置锚定#xff1a;定位出现的位置 5#xff09;分组…目录 1.筛选给定时间范围内的日志 2.统计独立IP 案列 需求 代码  运行结果 3.根据某字段去重 案例 运行结果 4.正则表达式 1认识正则 2匹配字符 3匹配次数  4位置锚定定位出现的位置 5分组和后向引用  1.筛选给定时间范围内的日志 grep/sed/awk用正则去筛选日志时如果要精确到小时、分钟、秒则非常难以实现。 但是awk提供了mktime()函数它可以将时间转换成epoch时间值。 rootUbuntu:~# # 2019-11-10 03:42:40转换成epoch为1970-01-01 00:00:00 rootUbuntu:~# awk BEGIN{print mktime(2023 08 05 08 44 40)} 1691196280 借此可以取得日志中的时间字符串部分再将它们的年、月、日、时、分、秒都取出来然后放入mktime()构建成对应的epoch值。因为epoch值是数值所以可以比较大小从而决定时间的大小。 下面strptime1()实现的是将2023-08-04-12-40-40 29T03:42:4008:00格式的字符串转换成epoch值然后和which_time比较大小即可筛选出精确到秒的日志。 可以利用patsplit来取时间中的数字 rootUbuntu:~# vim demo.awk rootUbuntu:~# cat demo.awk BEGIN{ #要筛选什么时间的日志将其时间构建成epoch值         which_time mktime(2023 08 04 22 40 29) } { #取出日志的日期时间字符串部分         #match($0,^.*\\[(.*)\\].*,arr) #将日期时间字符串转换为epoch值         tmp_time strptime1(arr[1]) #通过比较epoch值来比较时间大小         if(tmp_time wgich_time){print} } #构建的时间字符串格式为“2023-08-04T12:40:4008:00 function strptime1(str ,arr,Y,M,D,H,m,S){         patsplit(str,arr,[0-9]{1,4})         Yarr[1]         Marr[2]         Darr[3]         Harr[4]         marr[5]         Ssrr[6]         return mktime(sprintf(%s %s %s %s %s %s,Y,M,D,H,m,S)) } 下面strptime2()实现的是将10/Nov/2023:23:53:4408:00格式的字符串转换成epoch值然后和which_time比较大小即可筛选出精确到秒的日志。 rootUbuntu:~# vim dwmo.awk rootUbuntu:~# cat dwmo.awk BEGIN{   # 要筛选什么时间的日志将其时间构建成epoch值   which_time mktime(2023 08 04 11 42 40) } {   # 取出日志中的日期时间字符串部分   match($0,^.*\\[(.*)\\].*,arr)      # 将日期时间字符串转换为epoch值   tmp_time strptime2(arr[1])      # 通过比较epoch值来比较时间大小   if(tmp_time which_time){     print    } } # 构建的时间字符串格式为10/Nov/2023:23:53:4408:00 function strptime2(str,dt_str,arr,Y,M,D,H,m,S) {   dt_str gensub([/:], ,g,str)   # dt_sr 10 Nov 2023 23 53 44 08 00   split(dt_str,arr, )   Yarr[3]   Mmon_map(arr[2])   Darr[1]   Harr[4]   marr[5]   Sarr[6]   return mktime(sprintf(%s %s %s %s %s %s,Y,M,D,H,m,S)) } function mon_map(str,mons){   mons[Jan]1   mons[Feb]2   mons[Mar]3   mons[Apr]4   mons[May]5   mons[Jun]6   mons[Jul]7   mons[Aug]8   mons[Sep]9   mons[Oct]10   mons[Nov]11   mons[Dec]12   return mons[str] }  2.统计独立IP ? url 访问IP 访问时间 访问人 案列 a.com.cn|202.109.134.23|2015-11-20 20:34:43|guest b.com.cn|202.109.134.23|2015-11-20 20:34:48|guest c.com.cn|202.109.134.24|2015-11-20 20:34:48|guest a.com.cn|202.109.134.23|2015-11-20 20:34:43|guest a.com.cn|202.109.134.24|2015-11-20 20:34:43|guest b.com.cn|202.109.134.25|2015-11-20 20:34:48|guest 需求 统计每个URL的独立访问IP有多少个(去重)并且要为每个URL保存一个对应的文件得到的结果类似 代码  BEGIN{         FS|   } !arr[$1,$2]{         arr1[$1] } END{         for(i in arr1) {                 print i, arr1[i] (i.txt)         } } rootUbuntu:~# awk -f  1.awk demo3.txt rootUbuntu:~# ls -al 总计 92 drwx------  6 root root 4096  8月  5 09:50 . drwxr-xr-x 19 root root 4096  8月  3 17:32 .. -rw-r--r--  1 root root  109  8月  5 09:50 1.awk-rw-r--r--  1 root root   11  8月  5 09:50 a.com.cn.txt -rw-r--r--  1 root root   25  8月  4 10:19 awk -rw-------  1 root root  973  8月  4 17:19 .bash_history -rw-r--r--  1 root root 3106 10月 17  2022 .bashrc-rw-r--r--  1 root root   11  8月  5 09:50 b.com.cn.txt drwx------  2 root root 4096  8月  3 18:13 .cache-rw-r--r--  1 root root   11  8月  5 09:50 c.com.cn.txt drwxr-xr-x  2 root root 4096  8月  4 17:26 .cookiecutters -rw-r--r--  1 root root  566  8月  4 16:17 demo1.txt -rw-r--r--  1 root root  250  8月  5 09:24 demo2.txt -rw-r--r--  1 root root  300  8月  5 09:35 demo3.txt -rw-r--r--  1 root root  611  8月  5 09:08 demo.awk -rw-r--r--  1 root root  984  8月  5 08:50 dwmo.awk -rw-------  1 root root   20  8月  4 10:37 .lesshst -rw-r--r--  1 root root  161 10月 17  2022 .profile drwx------  5 root root 4096  8月  3 17:39 snap drwx------  2 root root 4096  8月  3 17:39 .ssh -rw-------  1 root root 8280  8月  5 09:50 .viminfo  运行结果 rootUbuntu:~# cat a.com.cn.txt  a.com.cn 2 rootUbuntu:~# cat b.com.cn.txt  b.com.cn 2 rootUbuntu:~# cat c.com.cn.txt  c.com.cn 1 3.根据某字段去重 去掉uidxxx重复的行 案例 2019-01-13_12:00_index?uid123 2019-01-13_13:00_index?uid123 2019-01-13_14:00_index?uid333 2019-01-13_15:00_index?uid9710 2019-01-14_12:00_index?uid123 2019-01-14_13:00_index?uid123 2019-01-15_14:00_index?uid333 2019-01-16_15:00_index?uid9710 首先利用uid去重我们需要利用?进行划分然后将uidxxx保存在数组中这是判断重复的依据 然后统计uid出现次数第一次出现统计第二次不统计 运行结果 rootUbuntu:~# vim demo2.txt rootUbuntu:~# awk -F? !arr[$2]{print} demo2.txt 2019-01-13_12:00_index?uid123 2019-01-13_14:00_index?uid333 2019-01-13_15:00_index?uid9710 4.正则表达式 1认识正则 1介绍   正则表达式应用广泛在绝大多数的编程语言都可以完美应用在Linux中也有着极大的用处。   使用正则表达式可以有效的筛选出需要的文本然后结合相应的支持的工具或语言完成任务需求。   在本篇博客中我们使用grep/egrep来完成对正则表达式的调用 2正则表达式类型 正则表达式可以使用正则表达式引擎实现正则表达式引擎是解释正则表达式模式并使用这些模式匹配文本的基础软件。 在Linux中常用的正则表达式有 POSIX 基本正则表达式BRE引擎 POSIX 扩展正则表达式BRE引擎 2匹配字符 . 匹配任意单个字符不能匹配空行 [] 匹配指定范围内的任意单个字符 [^] 取反 [:alnum:] 或 [0-9a-zA-Z] [:alpha:] 或 [a-zA-Z] [:upper:] 或 [A-Z] [:lower:] 或 [a-z] [:blank:] 空白字符空格和制表符 [:space:] 水平和垂直的空白字符比[:blank:]包含的范围广 [:cntrl:] 不可打印的控制字符退格、删除、警铃... [:digit:] 十进制数字 或[0-9] [:xdigit:]十六进制数字 [:graph:] 可打印的非空白字符 [:print:] 可打印字符 [:punct:] 标点符号 3匹配次数  * 匹配前面的字符任意次包括0次贪婪模式尽可能长的匹配 .* 任意前面长度的任意字符不包括0次 \? 匹配其前面的字符0 或 1次 匹配其前面的字符至少1次 {n} 匹配前面的字符n次 {m,n} 匹配前面的字符至少m 次至多n次 {,n} 匹配前面的字符至多n次 {n,} 匹配前面的字符至少n次   4位置锚定定位出现的位置 ^ 行首锚定用于模式的最左侧 $ 行尾锚定用于模式的最右侧 ^PATTERN$用于模式匹配整行 ^$ 空行 ^[[:space:]].*$ 空白行 或 \b 词首锚定用于单词模式的左侧 或 \b 词尾锚定用于单词模式的右侧 PATTERN 5分组和后向引用  ① 分组() 将一个或多个字符捆绑在一起当作一个整体进行处理   分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中这些变量的命名方式为: \1, \2, \3, ... ② 后向引用 引用前面的分组括号中的模式所匹配字符而非模式本身 \1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符 \2 表示从左侧起第2个左括号以及与之匹配右括号之间的模式所匹配到的字符以此类推 表示前面的分组中所有字
http://www.w-s-a.com/news/660216/

相关文章:

  • 模板网站建设明细报价表做网站第一
  • 公司网站建设系统软件开发 上海
  • 怎么让公司建设网站固安县建设局网站
  • 360免费建站官网入口手机网站建设设计
  • 商城网站建站系统dw如何做网页
  • 网站建设的公司收费我有网站 怎么做淘宝推广的
  • 网站建设策划书事物选题手机兼职app
  • html5 微网站模版wordpress博客速度很慢
  • 怎么做五个页面网站网络推广如何收费
  • 上虞宇普电器网站建设江西建筑人才网
  • 在吗做网站商城一个网站需要服务器吗
  • 先做网站再备案吗中山微网站建设报价
  • 树莓派可以做网站的服务器吗网站建设与设计ppt
  • 网站访问速度分析网站怎么做让PC和手机自动识别
  • 网站建设要考西宁网站建设多少钱
  • 网站开发公司东莞网站推广计划书具体包含哪些基本内容?
  • 素材天下网站惠州网站建设行业
  • 网站做a视频在线观看网站天津建站
  • 自己做的网站怎么链接火车头采集一个网站可以做几级链接
  • 济南网站制作哪家专业做网站怎样投放广告
  • 辽宁网站推广短视频运营培训学费多少
  • 拼多多网站怎么做翻译 插件 wordpress
  • 做网站运营的职业生涯规划wordpress分类显示图片
  • 网站建设与制作总结沈阳百度广告
  • 网站管理系统 手机会员制网站搭建wordpress
  • 做物品租赁网站清新wordpress主题
  • 优秀专题网站家居企业网站建设市场
  • 中山市有什么网站推广wordpress轻应用主机
  • 洗头竖鞋带名片改良授权做网站不贵整个世界
  • 设计电子商务网站建设方案微信如何开发自己的小程序