流编辑器:sed
一 简介:
sed是一个精简的、非交互式的流式编辑器,它在命令行中输入编辑命令和指定文件名,然后在屏幕上查看输出。
逐行读取文件内容到临时缓冲区,称为模式空间。接着用sed命令处理缓冲区内容,处理完之后,把缓冲区内容送往屏幕。接着处理下一行
这样不断的重复,直到文件末尾。原文件内容并没有改变。
二 简单的例子:
sed cmd 输入文件
sed '4,$d' test.in :逐行读取,删除4-最后一行
sed '3q' test.in:处理到第三行的时候退出,也就是前三行原样输出
sed 's/public/PUBLIC/' test.in:将public替换成PUBLIC (/g替换每行所有的)
sed -n 's/public/PUBLIC/g' test.in:没有输出 -n阻止输入行自动输出
sed -n 's/public/PUBLIC/p' test.in:输出只有public的行。p命令
三 指定多个命令的三种方法:
用分号隔开:sed 's/public/PUBLIC/;s/north/NPRTH/' test.in
每个命令前放置-e选项: sed -e 's/public/PUBLIC/' -e 's/north/NORTH/' test.in
使用分行命令功能,在输入单引号后按Enter回车 键就会多出提示符(>)
sed '
> s/public/PUBLIC/
> s/north/NORTH' test.in
-f:指定sed脚本文件.就是说 s/public/PUBLIC/ s/north/NORTH/等命令配置到test.sed脚本文件中。随便的本文件都可以
sed -f test.sed test.
四 sed命令cmd语法:
sed_cmd:使用格式
[address]sed_edit_cmd (通常用单引号括起来) 其中address为sed的行定位模式,用于指定将要被sed编辑的行。如果省略,sed将编辑所有的行。
sed_edit_cmd为sed对被编辑行将要进行的编辑操作。
address的定位方式:
n:表示第n行
$:表示最后一行
m,n:表示从第m到第n行
/pattern/:查询包含指定模式的行。
/pattern/,n:表示从指定模式到第n行
!:反向选择。如m,n!与m,n相反
例子:
sed -n '$p' test.in:打印最后一行 如果没有-n 原来的文本也会原样输出
sed -n '/north/p' test.in:包含 /pattern/的行
五 常用的sed_edit_cmd:
p:打印匹配行。 记得-n阻止输出。否则会先按原样打印原来的行
=:显示匹配行的行号 sed -n '/north/=' test.in
d:删除匹配行
sed -n '/public/d' test.in
a\:在。。。行后加行...
i\:在...行之前插入
c\:替换成...
例如:sed '/public/a\AAA\
>BBB\
>CCC' test.in 在public行后加三行AAA BBB CCC
六 替换命令:
s:替换命令 格式
[address]s/old/new/[gpw]
address:如果省略表示编辑所有行
g:全局替换
p:打印被修改行
w filename:将被替换的行内容写到指定文件
sed -n 's/public/PUBLIC/w data' test.in
sed 's/[0-9][0-9]$/&.5/' datafiel:将两个数字结尾的行匹配成.5结尾 &表示被替换的字符串,就是说在原串结尾加.5
流编辑器:sed的更多相关文章
- Shell 基础 -- 流编辑器 sed 详解
一.流编辑器 sed 与命令 sed Linux 中,常使用流编辑器 sed 进行文本替换工作.与常使用的交互式编辑器(如vim)不同,sed 编辑器以批处理的方式来编辑文件,这比交互式编辑器快得多, ...
- 流编辑器sed
sed与grep一样,都起源于老式的ed编辑器,因其是一个流编辑器(stream editor)而得名.与vi等编辑器不同,sed是一种非交互式编辑器(即用户不必参与编辑过程),它使用预先设定好的编辑 ...
- 快速理解linux流编辑器sed命令
原创 杜亦舒性能与架构 之前介绍过 awk 命令,sed 命令同样是非常重要的文本处理工具,涉及到linux shell开发时,几乎是避不开这两大利器的 sed 是 stream editor 的简写 ...
- shell脚本学习笔记 (流编辑器sed)
sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用很普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出. sed不 ...
- 流编辑器sed知识点总结
sed(流文本编辑器) 每次读取一行到模式空间中, 修改的sed模式空间中的内容,并不会修改源文件, 继而输出模式空间的内容, 最后删除模式空间中的内容. sed [O ...
- Linux下的sed流编辑器命令详解
sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内 ...
- SED单行脚本快速参考(Unix 流编辑器)(转)
sed.sourceforge.net被封杀,特在此处贴上官方的sed 使用说明文档 SED单行脚本快速参考(Unix 流编辑器) 2005年12月29日 英文标题:USEFUL ONE-LINE S ...
- Linux sed 流编辑器
sed是stream editor的简称,也就是流编辑器.盗用一张图片解释原理 命令格式: SYNPPSIS: sed [OPTION]… {script-only-if-no-other-scrip ...
- SED单行脚本快速参考(Unix 流编辑器)
------------------------------------------------------------------------- SED单行脚本快速参考(Unix 流编辑器) 200 ...
- centos 正则,grep,egrep,流式编辑器 sed,awk -F 多个分隔符 通配符 特殊符号. * + ? 总结 问加星 cat -n nl 输出文件内容并加上行号 alias放~/.bash_profile 2015-4-10 第十三节课
centos 正则,grep,egrep,流式编辑器 sed,awk -F 多个分隔符 通配符 特殊符号. * + ? 总结 问加星 cat -n nl 输出文件内容并加上行号 alias放~ ...
随机推荐
- C和C++区别——前置自增与后置自增
一.先看下面两段完全一样的代码块 /* test.cpp */ int main() { int a = 5; ++a = 7; printf("%d\n", a); return ...
- linux(centos8):用uniq去除文本中重复的行(去重)
一,uniq命令的用途 1, 作用: 从输入文件或标准输入中找到相邻的匹配行, 并写入到输出文件或标准输出 2, 使用时通常会搭配sort使用 说明:刘宏缔的架构森林是一个专注架构的博客,地址:htt ...
- LinkageSel无限级联动下拉菜单
http://files.cnblogs.com/files/chenghu/LinkageSel-master.zip
- Linux入门到放弃之七《进程管理》
进程管理 1.查看所有进程,并用全格式显示: 命令:ps -ef 2.用ps命令查看系统当前的进程,并把系统当前的进程保存到文件process中: 命令:ps aux >> process ...
- webmagic源码浅析
webmagic简介 webmagic可以说是中国传播度最广的Java爬虫框架,https://github.com/code4craft/webmagic,阅读相关源码,获益良多.阅读作者博客[代码 ...
- Docker学习—概念及基本应用
1.Doker基本概念: Docker架构: Docker使用客户端-服务器架构.Docker客户端与Docker守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作 相关描 ...
- Semaphore(信号灯)
public class SemaphoreDemo { public static void main(String[] args) { //三个停车位 Semaphore sp = new Sem ...
- c++ 让你的应用支持相对路径
std::string GetCurrentExeDir(){ char szPath[1024] = { 0 };#ifdef WIN32 GetModuleFileName(NULL, szPat ...
- STM32入门系列-复位程序
已经对启动文有了大致了解,再来看看系统在复位过程中做了哪些工作.复位程序如下: 1 ; Reset handler 2 3 Reset_Handler PROC 4 5 EXPORT Reset_Ha ...
- 面试时说Redis是单线程的,被喷惨了!
Redis是单线程的,这话搁以前,是横着走的,谁都知道的真理.现在不一样,Redis 变了.再说这句话,多少得有质疑的语气来跟你辩驳一番.意志不坚定的,可能就缴械投降,顺着别人走了. 到底是什么样的, ...