关闭

sed基础

标签: sedlinux
210人阅读 评论(0) 收藏 举报
分类:

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'

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:104651次
    • 积分:1156
    • 等级:
    • 排名:千里之外
    • 原创:32篇
    • 转载:0篇
    • 译文:2篇
    • 评论:15条
    文章分类
    最新评论