Sed工作原理
sed是一款流编辑工具,用来对文本进行过滤与替换工作,sed通过输入读取的文件内容,但一次仅读取一行内容进行某些指令处理后输出,sed更适合处理大数据文件。
具体请百度,就不一一粘贴了
sed在处理文本文件的时候,会在内存上创建一个模式空间,然后把这个文件的每一行调入模式永健用相应的命令处理,然后sed使用指令对行进行操作,操作完成之后看看sed中有没有-n参数,没有-n,sed会将行输出到stdout,然后在将第二行读入,然后执行指令进行处理,然后看看有没有-n,没有输出到stdout,直到最后。
sed的基本语法: sed [选项] “命令” 文件 sed [选项] -f 脚本文件 文件
文本的操作:
sed是一个“非交互式的”面向字符流的编辑器,awk是一种负责模式匹配的程序设计语言,它的典型示例是将数据转换成格式化的报表。
sed和vim一样是编辑器,sed是非交互式的,通过参数完成不同的操作,vim是交互式的,vim需要通知处理文件的那几行才回去处理,sed默认
会处理文件的所有行,除非你告诉他不处理那几行。
sed最主要的功能就是替换。拿到文件,文件不符合你的要求把内容做替换,文件格式不符合要求,可以匹配格式做替换
sed [选项] '[寻址]s/模式/替换/[标志]'
sed的相关简单操作可以看之前写的一篇文章或者自行百度。不做详细操作
sed使用正则表达式
使用正则表达式匹配模式 元字符 . 匹配除换行符之外的任意单个字符,awk中可以匹配换行符 * 匹配任意一个(包括0个)在它前面的字符 [...] 匹配方括号中的任意一个字符,^为否定匹配,-表示字符的范围 ^ 作为正则表达式的第一个字符,匹配行的开始,在awk中可以匹配换行符 $ 作为正则表达式的最后一个字符,匹配行的结尾,在awk中可以匹配换行符 {n,m} 匹配出现的n到m次,{n}匹配出现n次,{n,} 匹配至少出现n次 转义字符 扩展元字符(sed要使用扩展元字符需要使用-r) + 匹配前面的正则表达式的一次出现或者多次出现 ? 匹配前面的正则表达式的零次出现或者一次出现 | 可以匹配前边或者后边的正则表达式 () 对正则表达式进行分组 {n,m}匹配出现的n到m次数,{n}匹配出现n次,{n,}匹配至少出现n次
sed需要使用单引号,
具体用法百度。。
sed指明了及分组引用
标志flags: g 全局更改 n 可以是1-512,表示第n次出现的情况进行替换 p 打印模式空间的内容 w file写入到另一个文件file中 & 用正则表达式匹配的内容进行替换 回调参数
具体案例百度,时间不够,之后抽空都会加上。
sed高级指令
sed高级指令 sed只有一段内存空间叫模式空间,但有的时候可能要做一些保存。 比如:处理第一行第二行第三行,但有时候希望处理完第二行回到第一行去处理,这种情况下基本的sed是做不到的,此时需要高级操作 高级指令只做了解 1.比普通命令用的少 2.所有的命令都可以使用awk去替代 高级指令分三个组: 1.处理多汗模式空间(N,D,P) 2.采用保持空间来保存模式空间的内容并使他客用户后续的命令(H,h,G,g,x) 3.编写使用分支和条件的指令脚本来更改控制流
sed空间转换
我有PDF文档,如果有需要的可以留言,我百度云分享