sed(Stream Editor):流编辑器

一次只读取一行

模式空间

1、sed语法:

sed [option] "script" FILE...

2、选项:

-n:静默模式,不输出模式空间中的内容

-r:使用扩展的正则表达式

-f:/path/to/sed_script_file:指定sed脚本文件

-e 'script' -e 'script' :指定多个编辑脚本

-i:直接修改读取的文件内容,而不是输出到终端

3、编辑命令:

d:删除

p:打印

i \text:匹配内容上面增加text内容

a \text:匹配内容西面增加text内容

r /path/to/somefile:在制定位置把另外一个文件的内容插入进来

w /path/to/somefile:将符合条件的所有行保存至指定得文件中

= :显示符合条件行的行号

例如:# sed -n '/^UUID/=' /etc/fstab

s///:查找条件可以使用模式,但要替换的内容不行

4、地址定界:

startline,endline:1,3

/pat1/,/pat2/

/pattern/

用法:

sed [options] 'addr1[,addr2]编辑命令' FILE ...

sed [options] "addr1[,addr2]编辑命令" FILE ...

5、正则表达式:

基本的:

字符:

.

[]

[^]

次数:

*

\?

\{m,n\}

锚定:

^

$

\<,\b

\>,\b

分组:

\(\)

引用:

\1,\2,...

扩展:

字符:

.

[]

[[:lower:]],[[:punct:]],[[:alnum:]]

次数:

*

+

{m,n}

锚定:

^

$

\>,\b

\<,\b

或:

a|b

分组:

()

引用:

\1,\2,...

sed '地址定界s@查找条件@替换文本@'

6、修饰符:

g:global,全局替换

i:ignore-case,不区分字符大小写

7、例子:

1、将selinux的enforcing改成disabled

# sed 's@^SELINUX=enforcing@SELINUX=disabled@g' /etc/selinux/config

2、删除/etc/init.d/functions文件中的空白行

# sed '/^$/d' /etc/init.d/functions

3、删除/etc/inittab文件中位于行首的#号

# sed 's@^#@@g' /etc/inittab

4、删除/etc/rc.d/rc.sysinit文件夹中以#后跟至少一个空白字符开头的行的行首的#和空白字符

# sed 's@^#[[:space:]]\{1,\}@@g' /etc/rc.d/rc.sysinit

5、删除/boot/grub/grub.conf文件中行首的空白字符

# sed 's@^[[:space:]]\{1,\}@@' /boot/grub/grub.conf

6、取出一个文件路径的目录名称

# echo /etc/sysconfig/network/ | sed 's@[^/]\{1,\}/\?$@@'

sed命令的基本使用的更多相关文章

  1. 文本处理三剑客之sed命令

    第十八章.文本处理三剑客之sed命令 目录 sed介绍 sed命令常用选项 sed常用编辑命令 sed使用示例 sed高级语法 18.1.sed简介 sed全名stream editor,流编辑器,s ...

  2. linux shell 用sed命令在文本的行尾或行首添加字符

    转自 http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed ...

  3. linux sed命令详解

    简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...

  4. sed命令详解

    搜索 纠正错误  添加实例 sed 功能强大的流式文本编辑器 补充说明 sed 是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时 ...

  5. Linux安全基础:sed命令的使用

    sed 是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作. Sed本质上是一个编辑器,但是它是非交互式的,这点与VIM不同:同时 ...

  6. [转]sed命令详解

    转载:http://blog.chinaunix.net/u/22677/showart_1076318.html   1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保 ...

  7. sed命令

    sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为:         sed ...

  8. sed 命令使用

    ios 的sed 命令 跟linux  sed 命令有区别 # 所有的a 替换成b sed -i "" 's/a/b/g' #删除掉所有包含a的行 sed -i "/a/ ...

  9. sed命令给文本文件的每行的行首或者行尾添加文字

    在每行的头添加字符,比如"HEAD",命令如下: sed 's/^/HEAD&/g' test.file 在每行的行尾添加字符,比如“TAIL”,命令如下: sed 's/ ...

  10. Linux的sed命令

    一.初识sed 在部署openstack的过程中,会接触到大量的sed命令,比如 # Bind MySQL service to all network interfaces.sed -i 's/12 ...

随机推荐

  1. react项目组件化思考

    三个原则 single store render from top immutable data single store,便于组件之间通信. render from top,因为store就一个,每 ...

  2. linux 知识汇总

    1 ) linux下文件系统类型的学习 2 )深入理解linux i节点(inode) 3 )RAID系列

  3. pycharm 常用设置,打开文件数量

    1.主题(皮肤)和字体的设置(暂时略过) File ->Settings -> 搜索Font 2.文档行号的设置 1,临时设置.右键单击行号处,选择 Show Line Numbers. ...

  4. Python之SQLAlchemy学习

    alchemy 英[ˈælkəmi] 美[ˈælkəmi] n. 炼金术; 炼丹术; (改变事物.物质的)魔力(或方法) ; (事物.物质的) 神秘变化; SQLAlchemy是Python中最有名的 ...

  5. (十)Linux 网络编程之ioctl函数

    1.介绍 Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口.并且还能够查看,修改,删除ARP高速缓存的 ...

  6. GIT warning: LF will be replaced by CRLF.

    git config --global core.autocrlf false git config --global core.autocrlf false  

  7. View绘制--onMeasure() 、onLayout()

    绘制需要经过多次 measure() layout() 过程, measure:测量,不可被子类继承,调用onMeasure()方法 onMeasure():测量,测量结束后每一个View都保存了自己 ...

  8. 用substr()截取中文出现乱码的解决方法

    截取中文字符串时出现乱码(使用substr()函数) 程序一:PHP截取中文字符串方法 function msubstr($str, $start, $len) {    $tmpstr = &quo ...

  9. js高级程序设计(七)函数表达式

    定义函数的方式有两种:一种是函数声明,另一种就是函数表达式.函数声明的语法是这样的. function functionName(arg0, arg1, arg2) { //函数体 } Firefox ...

  10. c# string.format json字符串 formatException错误

    正常字符串的string.format是没问题的但是在拼接json的字符串的时候因为里面包含了 {}  花括号 里面又嵌套了 {0} {1} {2}这些要替换的关键字 所以会报错. 经过百度. 字符串 ...