• 文本处理


    grep命令

    grep命令:查找文件里符合条件的字符串

    grep函数用于在文件中查找可以与模式匹配的文本,并显示其所在行

    grep函数的模式字符串即为基础正则表达式:

    grep [-acinv] [-AB] [--color=auto] [mode] [file]

    选项:

    -a 将二进制文件当做文本文件处理

    -c 统计找到匹配的次数

    -i 忽略大小写

    -n 输出匹配的行号

    -v 反向查找,即输出不存在匹配的行

    -A After,输出匹配的行后面所有行

    -B Before,输出匹配的行前所有行

    --color=auto 将匹配的内容自动使用不同颜色显示

    基础正则表达式:

    • 特定字符串 直接使用单引号括起,特殊字符需要在前面加‘’转义,解除其特殊功能。

    • 包含/不包含 某集合的元素

    [字符集] 代表字符集中任意一个字符,在表达式中占一个字符的位置

    [^字符集] 代表字符集不包含的任意一个字符,在表达式中占一个字符的位置

    字符集的描述可以将所有元素写出,无需分隔符每个字符即为一个元素(如:[abc])
    也可以按照语系字符集的顺序写出(如在LANG=C下的[a-z]表示全体小写英文字母,或[a-z0-9]表示全体小写字母或者数字)

    • 行首行尾

    Linux风格的文本,行首标记为“^”, 如'^a'表示第一个字符是a的行。行尾标记为“,z”,′z'表示最后一个字符为z的行

    自然地,'^$'表示空行

    • 任意字符

    .  任意单个字符,在表达式中占一个字符的位置

    * 0至无穷个前一字符的重复,如'a*'表示a后面跟0至无穷个a组成的字符串。

    .* 表示任意字符0至无穷次重复,它在正则表达式中表示任意字符串

    扩展正则表达式:(grep不支持,使用egrep或grep -E):

    + 重复一个或一个以上的前一个字符,如a+

    ? 0个或一个的前一个字符, 如a?

    | 逻辑或

    (a|b) 组字符串,代表字符串a或字符串b

    (|)+ 表示重复1次或以上的组字符串

    Sed命令

    sed命令:一种在线编辑器,它一次处理一行内容

    sed是以行为单位的支持正则表达式的字符串处理命令

    处理时,把当前处理的行存储在临时缓冲区中,称为'模式空间'(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。

    sed [-inefr] {处理命令/脚本文件} [处理文件]

    选项:

    -n 使用安静模式。若无此参数来自stdin的数据会全部输出到屏幕,若使用此参数则只有经过sed处理的行才会显示

    -e 直接在命令行中输入处理命令

    -f filename 添加脚本文件

    -r 启用扩展正则表达式支持(默认支持基础正则表达式)

    -i 直接将修改写入文件,默认将其输出到stdout。

    处理命令 '[n1, [n2]]op str' n1,n2表示从n1到n2所有行(闭区间)作为当前行,op是操作符,str是操作符后所接的字符串

  • 相关阅读:
    MySQL 一般模糊查询的几种用法
    MySQL插入中文数据报错
    BeanUtils.populate 的作用
    分分钟搞定 JSP 技术
    margin-top相对谁的问题
    常用汉字的Unicode码表
    从InputStream到String_写成函数
    Http请求和响应应用
    发布mvc报错:403.14-Forbidden Web 服务器被配置为不列出此目录的内容
    导出到excel
  • 原文地址:https://www.cnblogs.com/dear_diary/p/6806745.html
Copyright © 2020-2023  润新知