学习文本处理整理与常见的符号作用(shell 通配符 正则)

    xiaoxiao2024-11-27  69

    一、符号整理

    符号作用#注释>输出重定向>>输出追加重定向<输入重定向<<追加输入重定向\转义字符.一个单字符(当前目录)…上级目录~当前用户家目录/根目录(在中间使用表示路径)~用户根目录(用户登录时所在的目录)`` $()引用命令被执行后的结果$以***结尾(正则)变量替换的代表符号。^以***开头(正则)^$表示空行*匹配任何字符,、文本、空;(0个或多个)* .*任意长度字符^.*以任意多个字符串开头,.*有多少算多少,贪婪模式?任何一个字符,(a?b:之间只能有一个字符)&让程序或脚本切换到后台执行&&并且 同时成立[abc]表示这个范围内的任何一个字符(正则,通配符){1…100}产生一个序列,以点分割且,不能有空格(通配符)[^abc][!abc]匹配指定范围外的任意一个字符()分组将一个或多个字符绑在一起当做一个整体(str1,str2,…)匹配str1或str2(或等)其中的一个字符串‘’单引号转移,比较傻瓜其内部所有shell命令、通配符。全部不会被使用“”双引号转移,允许出现特定的命令``反单引号转移,引号内都被视为命令执行

    正则元字符补充:

    | 管道符,或者(正则) || 逻辑符号,代表与 && 逻辑符号,代表或 [:alnum:] 字母和数字 [:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z [:lower:] 小写字母 [:upper:] 大写字母 [:blank:] 水平空白字符(空格和制表符) [:space:] 所有水平和垂直的空白字符(比[:blank:]包含的范围广) [:cntrl:] 不可打印的控制字符(退格、删除、警铃...) [:digit:] 十进制数字 [:graph:] 可打印的非空白字符 [:print:] 可打印字符 [:punct:] 标点符号 [:xdigit:] 十六进制数字

    二、文本处理三剑客之 grep 1、grep介绍:

    作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行 匹配检查;打印匹配到的行 模式:由正则表达式字符及文本字符所编写的过滤条件 grep [OPTIONS] PATTERN [FILE...] grep root /etc/passwd grep "$USER" /etc/passwd grep '$USER' /etc/passwd grep `whoami` /etc/passwd

    2、grep命令选项

    --color=auto: 对匹配到的文本着色显示 -m # 匹配#次后停止 -v 显示不被pattern匹配到的行 -i 忽略字符大小写 -n 显示匹配的行号 -c 统计匹配的行数 -o 仅显示匹配到的字符串 -q 静默模式,不输出任何信息 -e 实现多个选项间的逻辑or关系 grep –e ‘cat ’ -e ‘dog’ file -w 匹配整个单词 -E 使用ERE -F 相当于fgrep,不支持正则表达式 -f file 根据模式文件处理 -A # after, 后#行 -B # before, 前#行 -C # context, 前后各#行

    三、文本处理三剑客之 sedsed介绍

    sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中, 称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后, 把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。如果没有使诸如‘D’ 的特殊命令, 那会在两个循环之间清空模式空间,但不会清空保留空间。这样不断重复,直到文件末尾。 文件内容并没有改变,除非你使用重定向存储输出。 功能:主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等

    二、sed用法

    sed [option]... 'script' inputfile

    1、常用命令选项

    -n 不输出模式空间内容到屏幕,即不自动打印 -e 多点编辑 -r 支持使用扩展正则表达式 -i.bak 备份文件并原处编辑 -f /PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本

    2、地址命令

    script 地址命令 对指定行号处理,默不指定,则处理所有行 单地址: #: 指定的行,$:最后一行 /pattern/:被此处模式所能够匹配到的每一行 地址范围: #,# #,+# /pat1/,/pat2/ `#,/pat1/ ~:步进 1~2 奇数行 2~2 偶数行

    三、编辑命令

    d 删除模式空间匹配的行,并立即启用下一轮循环 p 打印当前模式空间内容,追加到默认输出之后 = 为模式空间中的行打印行号 ! 模式空间中匹配行取反处理 s///: 查找替换,支持使用其它分隔符,s@@@,s### a [\]text1 在指定行后面追加文本,支持使用\n实现多行追加 i [\]text 在行前面插入文本 c [\]text 替换行为单行或多行文本 w /path/somefile 保存模式匹配的行至指定文件 r /path/somefile 读取指定文件的文本至模式空间中匹配到的行后 替换标记: g 行内全局替换 p 显示替换成功的行 w /PATH/TO/SOMEFILE 将替换成功的行保存至文件中
    最新回复(0)