sed命令的基本使用
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命令的基本使用的更多相关文章
- 文本处理三剑客之sed命令
第十八章.文本处理三剑客之sed命令 目录 sed介绍 sed命令常用选项 sed常用编辑命令 sed使用示例 sed高级语法 18.1.sed简介 sed全名stream editor,流编辑器,s ...
- linux shell 用sed命令在文本的行尾或行首添加字符
转自 http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed ...
- linux sed命令详解
简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...
- sed命令详解
搜索 纠正错误 添加实例 sed 功能强大的流式文本编辑器 补充说明 sed 是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时 ...
- Linux安全基础:sed命令的使用
sed 是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作. Sed本质上是一个编辑器,但是它是非交互式的,这点与VIM不同:同时 ...
- [转]sed命令详解
转载:http://blog.chinaunix.net/u/22677/showart_1076318.html 1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保 ...
- sed命令
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed ...
- sed 命令使用
ios 的sed 命令 跟linux sed 命令有区别 # 所有的a 替换成b sed -i "" 's/a/b/g' #删除掉所有包含a的行 sed -i "/a/ ...
- sed命令给文本文件的每行的行首或者行尾添加文字
在每行的头添加字符,比如"HEAD",命令如下: sed 's/^/HEAD&/g' test.file 在每行的行尾添加字符,比如“TAIL”,命令如下: sed 's/ ...
- Linux的sed命令
一.初识sed 在部署openstack的过程中,会接触到大量的sed命令,比如 # Bind MySQL service to all network interfaces.sed -i 's/12 ...
随机推荐
- JMeter结果分析
- Python编程练习题
1 求可用被17整除的所有三位数 for num in range(99,1000): if num % 17 == 0: print num ps:下面的写法和上面的写法性能的差距,上面好吧? fo ...
- mysql exists 和 in的效率比较
这条语句适用于a表比b表大的情况 select * from ecs_goods a where cat_id in(select cat_id from ecs_category b); 这条语句适 ...
- Integer
import static java.lang.System.*; public class IntegerTestOne{ public static void main(String []args ...
- build.xml配置编译打包过程(转)
工程目录如下,使用eclipse中的ant对此工程进行编译打包: MonServer | --------src | |--------com | |--- ...
- Uncaught SecurityError: Failed to execute 'replaceState' on 'History': A history state object with
stackoverflow上的的解决方法:Install a web server and load your HTML document from there.
- android开发文档工具集(持续更新中...)
http://www.androiddevtools.cn/ android 产品->交互->视觉->开发->测试各种工具地址下载, 各种文档下载应有尽有,强烈推荐. ht ...
- Ubuntu 16.04.1下修改MySQL默认编码
在Ubuntu 下配置 MySQL 的字符编码.安装完 MySQL 后,系统默认的字符编码是 latin1 ,输入的是中文,可是输出却是一堆乱码.现在要做的就是把 MySQL的默认字符编码设置为支持中 ...
- django rest framework csrf failed csrf token missing or incorrect
django rest framework csrf failed csrf token missing or incorrect REST_FRAMEWORK = { 'DEFAULT_AUTHEN ...
- BFC 神奇背后的原理
BFC已经是一个耳听熟闻的词语了,网上有许多关于BFC的文章,介绍了如何触发BFC, 以及BFC的一些用处(如清浮动,防止margin重叠等).虽然我知道如何利用BFC解决这些问题,但当别人问我BFC ...