学习文本处理整理与常见的符号作用(shell 通配符 正则)
2019-05-26 11:15
309 查看
一、符号整理
符号 | 作用 |
---|---|
# | 注释 |
> | 输出重定向 |
>> | 输出追加重定向 |
< | 输入重定向 |
<< | 追加输入重定向 |
\ | 转义字符 |
. | 一个单字符(当前目录) |
… | 上级目录 |
~ | 当前用户家目录 |
/ | 根目录(在中间使用表示路径) |
~ | 用户根目录(用户登录时所在的目录) |
`` $() | 引用命令被执行后的结果 |
$ | 以***结尾(正则)变量替换的代表符号。 |
^ | 以***开头(正则) |
^$ | 表示空行 |
* | 匹配任何字符,、文本、空;(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 将替换成功的行保存至文件中
相关文章推荐
- shell通配符与文本正则表达式学习笔记
- Linux学习第七课-文本处理工具及正则表达式
- Shell脚本学习指南之文本处理工具
- 常见处理文本的SHELL命令
- Linux下shell中的文本处理正则表达式
- shell脚本中常见的一些特殊符号和作用详解
- Linux 学习笔记 -- 第三部分 学习 shell 与 shell script -- 第12章 正则表达式与文件格式化处理
- [学习整理] VNC相关命令,配置gnome,以及常见错误处理
- SHELL学习笔记之文本处理三剑客grep/sed/awk
- [linux学习笔记]第3天:变量分类,重定向,管道命令,程序执行流,文本处理类命令, 正则表达式,短路操作符
- 常见c#正则表达式类学习整理
- Shell脚本学习指南之文本处理工具
- Perl语言学习笔记 9 正则表达式处理文本
- Perl语言学习笔记 9 正则表达式处理文本
- 常见处理文本的SHELL命令
- 常见处理文本的SHELL命令
- shell脚本之正则表达和文本处理(文本处理三剑客:1、grep 2、sed 3、awk)
- 常见处理文本的SHELL命令
- Shell脚本学习-文件操作和文本处理
- 常见处理文本的SHELL命令