SED-强大的流编辑器-[学习01]
来源:互联网 发布:华中农业大学学报软件 编辑:程序博客网 时间:2024/06/05 03:41
sed - stream editor for filtering and transforming text
作为一个UNIX/Linux平台下强大的流编辑器, 是非常值得我们这些Linux fans去学习和深入理解的。
G :::: 跳至[缺省是到文件末尾]
Ctrl + g = ^g :::: 显示状态栏
本文所有的内容均来自互联网, 而且是来在国外的论坛或者网站
Href = http://www.grymoire.com/Unix/Sed.html, 本人仅做必要的解释和相关的修正.
一. 基础部分
1. s for substitution
比如想要将文件sar中的asp换成php, 并重定向输出到dst文件(每行只替换一次,如果一行中
有多个asp, 那么看到的结果将是第一个asp被替换成php, 其余均不变 ).
%: sed s/asp/php/ sar > dst
因为sed是一个流编辑器,输入可以是一个文件,当然也可以是如下的输入
%: echo "asp and java" | sed s/asp/php/
当然比较安全的做法是用单引号将替换部分引起来:
%: sed 's/asp/php/' sar > dst
总结: s/,,,,,,,/,,,,,,/
2. 路径的替换(Eg....)
因为路径中经常包含有 '/' 或 '/' 字符, 所以需要转义 '/'
比如将sar文件中的 /usr/bin/ 替换为 /home/acc1 有如下几种方法:
%: sed 's///usr//bin/////home//acc/ sar > dst
%: sed 's: /usr/bin/ :/home/acc/ :' sar > dst
%: sed 's| /usr/bin/ |/home/acc/ |' sar > dst
可见适当的采用 :..... : >>>>>>> : 和 |..... | >>>>> | 可以很方便
3. '&' 字符的使用
在sed中 '&' 表示找到(匹配)的字符或串
%: echo "123456abc" | sed 's/123456/&--->/' 将得到如下:
123456--->abc 因为里面找到的123456都被替换成 123456---> 了
再来看几个很有意思的小程序, 注意观察他们的输入有何不同, why?
$ echo "123 abc" | sed 's/[0-9]/&-->/'
1-->23 abc
--------only 1 time
$ echo "123 abc" | sed 's/[0-9]/&-->/g'
1-->2-->3--> abc
--------for 3 times
$ echo "123 abc" | sed 's/[0-9]*/&-->/'
123--> abc
--------because of `*` , for 1 time
$ echo "123 abc" | sed 's/[0-9]*/&-->/g'
123--> -->a-->b-->c-->
--------???? * 表示匹配0或者多个 /a*/ 0或多个a
【0-9】那应该是表示0或者多个数字, 123匹配一次
后面的abc表示0个数字,也成功一次~!
$ echo "123 abc" | sed 's/[0-9].*/&-->/g'
123 abc-->
--------for 1 time & == "123 abc"
$ echo "123 abc" | sed 's/[0-9]/&-->/g'
1-->2-->3--> abc
--------for 3 times
今天暂时到这里--有时间继续~!
--------------------------------------------------------------------
- SED-强大的流编辑器-[学习01]
- 强大的Unix流编辑器sed在线极速入门 (全三部分)
- 流编辑器 sed 学习笔记
- shell学习3--sed流编辑器
- sed编辑器学习笔记
- linux之强大的sed
- sed流编辑器的语法与应用
- sed流编辑器的语法与应用
- 强大的编辑器editplus
- 强大的Vim 编辑器
- 强大的vim编辑器
- sed流编辑器总结
- 流编辑器sed
- 流编辑器sed
- sed流编辑器
- sed - 流编辑器
- 流编辑器sed
- sed 流编辑器
- 《C陷阱与缺陷》理解函数声明:(*(void(*)())0)() 和signal函数声明
- c语言实现简单可变数组
- C#下的集合程序製作1
- Android手机操作系统中的常用术语
- 致应届毕业生 少走弯路的十条忠告
- SED-强大的流编辑器-[学习01]
- DSP/BIOS入门
- 关于Activity的生命周期(开发中常用)
- 关于Activity的生命周期(开发中常用)
- (转)用PowerDesigner12.5生成C#类包含属性的方法
- blackberry sdk 安装
- SQL查询每个分组的前N条记录
- 读博士,需要什么
- 最近在做的一些事情