sed基础

sed读取数据方式: sed是流式编辑器,它先从文件的一个文本行或者从标准输入中读取数据,copy进缓冲区,然后读取命令行或者脚本的第一条命令,并使用这些命令查找模式或者定位行号进行编辑;如此重复。
sed处理的是缓冲区中的copy,并不处理源文件;所有的改动如果不重定向到一个文件,都将输出到屏幕。
调用方式:
1、命令行: sed [选项] ‘sed命令’ input_file
实际的命令要加上单引号,(双引号也支持)
2、使用脚本文件:sed [选项] -f sed脚本文件 input_file
第一行具有sed命令解释器的脚本:sed脚本文件 [选项] input_file

选项:

-e 进行多项编辑,即对输入行应用多条sed命令时使用
-n 取消默认的输出;
-f 指定sed脚本的文件名

sed在文件中的定位方式:
数字定位行号;或者正则表达式匹配定位
x x为一行号,如2
x,y 表示行号范围从x到y
/pattern/ 查询包含模式的行
/pattern1/pattern2/ 查询包含两个模式的行
/pattern/,x 行号和模式查询匹配行
x,/pattern/ 行号和模式查询匹配行
x,y! 查询不包含指定x,y的行

sed编辑命令:
a\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行
c\ 用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用”\”续行
i\ 在当前行之前插入文本。多行时除最后一行外,每行末尾需用”\”续行
d 删除定位行
h 把模式空间里的内容复制到暂存缓冲区
H 把模式空间里的内容追加到暂存缓冲区
g 把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容
G 把暂存缓冲区的内容追加到模式空间里,追加在原有内容的后面
l 列出非打印字符
p 打印行
n 读入下一输入行,并从下一条命令而不是第一条命令开始对其的处理
q 结束或退出sed
r 从文件中读取输入行
! 对所选行以外的所有行应用命令
s 用一个字符串替换另一个
w 将所选的行写入文件
x 交换暂存缓冲区与模式空间的内容
y 将字符替换为另一字符(不能对正则表达式使用y命令)
= 显示文件行号
{} 在定位行执行的命令组

显示整个文件: sed -n '1,$p' test.file $表示最后一行
替换文本: sed ‘s/pattern-to-find/repleacement-pattern/[g p w n]’ input_file
g:默认只替换第一次出现模式,选项g将全局替换所有出现的模式
p:默认将所有的被替换行写入标准输出,加P选项将使-n选项无效
w 文件名:此选项将输出定向到一个文件。

使用替换修改字符串:& 命令保存匹配模式;
如:sed -n ‘s/aa/”hello” &/p’ test.file —>将aa替换成 hello aa

删除空行:'/^$/d'
删除第一个字符:'s/^.//g'

阅读更多
文章标签: sed linux
个人分类: linux
上一篇awk基础
下一篇spark中多表连接优化实例
想对作者说点什么? 我来说一句

shell sed 详述

2011年09月23日 106KB 下载

sed command

2011年05月28日 250B 下载

sed 用法sed 用法sed 用法

2011年01月19日 7KB 下载

sed awk grep

2009年12月27日 36KB 下载

没有更多推荐了,返回首页

关闭
关闭