sed与正则表达式
sed是一种在线编辑器,它一次处理一行内容 。处理时,将当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区的内容,处理完成后,把缓冲区的内容送到屏幕。接着处理下一行,这样不断重复,直到文件末尾。
注:sed文件内容没有改变,除非使用重定向输出。
定址:通过定址来定位所编辑的行,该地址用数字构成,用逗号分隔的两个行数表示以这两行起止的行的范围。($表示最后一行)
定界: sed 's:test:TEXT:g'
sed [-nefri] 'command' file(s)
-n : 使用安静模式,加上-n 参数后,只有经过sed特殊处理的那一行才会被显示出来。
-r :sed的动作支持的是延伸型正规表示法的语法。(预设的是基础正规表示法语法)
-i :直接修改读取的文档内容,而不是有屏幕输出。
注: 一般 -n 会与下面的p连用;当用 -r 时会在原文档目录里生成一个原文件名加 r 的文件
常用命令: a : 新增 c : 取代 d :删除 i :插入 p : 列印 s :替换 (例如 1,20s/old/new/g)
sed 操作方法
1 例 sed '1,3a drink tea' ab
2 例 sed ‘1,2d’ab
3 当在行首进行删除等操作时,多用 (s : 替换 用/ /来定界)
删除行首空格
sed -n 's/^[[]:space:]\+//p' ab
4 当对整行操作时,也可以用 / / 来定界
例 sed -n '/ruby/p' ab
删除空行
sed -i '/^$/d' ab