美文网首页
文件描述符和正则表达式

文件描述符和正则表达式

作者: zxhChex | 来源:发表于2019-08-05 21:16 被阅读0次

0 标准输入
1 标准输出
2 错误输出
3 - $(ulimit -n)
command <&n 把文件描述符n作为输入
command >&n 输出重定向到文件描述符n
exec n<&- 关闭文件描述符

正则表达式 (regular expression, RE)

一种工具,所有的编程语言都支持正则

[:alnum:] 0-9 A-Z a-z
[:alpha:] A-Z a-z
[:lower:] a-z
[:upper:] A-Z
[:digit:] 0-9

grep 查询 可查看多个文件 查找每个要找的字符串
-v 取反(行) -n 显示行号
^word 以word为开头
word以word为结尾 '^'空白行
. 表示一定有一个且仅有一个
\ 跳脱字符,将特殊符号的特殊意义去除

  • 重复零个到无穷个前一个字符
    

[] 仅表示其中一个字符
[^ ] 取反
{ n,m } 连续n到m个的 表示数量(前一个字符)出现的次数

grep -o 只显示匹配的字符串
-n 显示在文件中的行数
-c 统计数量(行)
-B 2 前两行 -A 3 后三行
显示目标行的前后各 3 行
-C 3 前后三行
-l 只要文件名
-r 递归查找


图片.png
图片.png
图片.png

扩展正则
egrep / grep -E

  • 重复一个或以上的前一个字符
    ? 零个或一个前一个字符
    | 或
    () 群组字符 'g(la|oo)d' glad或good
    ()+ 一个以上的这个组里的字符
    grep -E 'root|sshd' /etc/passwd
    grep -e 'root' -e 'sshd' /etc/passwd

shell运行
bash 开启子进程运行
直接用路径执行文件 子进程
source或者 . 直接放到父进程进行,参数保留

默认变量
# 所有位置变量的个数@ 所有位置变量
0 程序本身1 位置变量1

统计访问IP次数:

awk '{a[$1]++}END{for(v in a)print v,a[v]}' access.log

统计访问访问大于100次的IP:

awk '{a[$1]++}END{for(v ina){if(a[v]>100)print v,a[v]}}' access.log

统计访问IP次数并排序取前10:

awk '{a[$1]++}END{for(v in a)print v,a[v]|"sort -k2 -nr |head -10"}' access.log

统计时间段访问最多的IP:

awk'4>="[02/Jan/2017:00:02:00" &&4<="[02/Jan/2017:00:03:00"{a[$1]++}END{for(v in a)print v,a[v]}'access.log

统计上一分钟访问量:

date=$(date -d '-1 minute'+%d/%d/%Y:%H:%M)

awk -vdate=date '4~date{c++}END{printc}' access.log

统计访问最多的10个页面:

awk '{a[$7]++}END{for(vin a)print v,a[v]|"sort -k1 -nr|head -n10"}' access.log

统计每个URL数量和返回内容总大小:

awk '{a[7]++;size[7]+=$10}END{for(v ina)print a[v],v,size[v]}' access.log

统计每个IP访问状态码数量:

awk '{a[1" "9]++}END{for(v ina)print v,a[v]}' access.log

统计访问IP是404状态次数:

awk '{if(9~/404/)a[1" "$9]++}END{for(i in a)print v,a[v]}' access.log

相关文章

  • Shell--呈现数据

    文件描述符 用stdout和stderr文件描述符来在多个位置生成输出,重定向相应的文件描述符 临时重定向 在脚本...

  • 第三章 文件I/O

    文件描述符 所有打开的文件都通过文件描述符引用。操作(读写)该文件描述符就相当于操作该文件。文件描述符是一个非负的...

  • 第三章 文件IO

    对于内核而言,所有打开的文件都通过文件描述符引用,文件描述符是一个非负整数文件描述符标准符号常量文件描述符0标准输...

  • Head First C学习之文件描述符、fileno()、du

    进程用文件描述符表示数据流 文件描述符是一个数字,它代表一条数据流。 进程会把文件描述符和对应的数据流保存在描述符...

  • ios进阶路线 shell脚本语言基础教程(四)

    上篇我们讲了文件描述符还有自定义文件描述符,补充一下如何关闭自定义的文件描述符 语法:exec 描述符>&- 案例...

  • Linux中文件描述符,重定向与标准输入输出

    Linux中文件描述符,重定向与标准输入输出 文件描述符:内核(kernel)利用文件描述符(file descr...

  • 文件描述符和正则表达式

    0 标准输入1 标准输出2 错误输出3 - $(ulimit -n)command <&n 把文件描述符...

  • 基础

    基础 文件描述符和重定向 文件描述符: 0 标准输入 1 标准输出 2 标准错误 重定向 >可以将文本保存到文件中...

  • 文件I/O和记录锁

    文件描述符: 文件描述符是一个非负整数,所有打开的文件都通过文件描述符引用。按照惯例:0(STDIN_FILENO...

  • Shell 重定向(五):指定用于输入的文件描述符

    Shell 允许你给一个输入文件或输出文件指定一个文件描述符。这样可以提高文件读取和写入的性能。这类文件描述符被称...

网友评论

      本文标题:文件描述符和正则表达式

      本文链接:https://www.haomeiwen.com/subject/kmdpdctx.html