Linux命令 sed
一. 以行为单位进行操作。
d:删除
$ nl passwd | sed '2,5d' # 删除第2~5行
$ nl passwd | sed '2d' # 删除第2行
$ nl passwd | sed '3,$d' # 删除第3行到最后一行
a: 之后,i: 之前添加
$ nl passwd | sed '2a drink tea' # 在第2行后添加内容
$ nl passwd | sed '2i drink tea'
\: 添加多行

键入'\'后再键入'Enter'
c: 替换
$ nl passwd | sed '2,5c No 2-5 number' # 把第2~5行替换
p: 显示
$ nl passwd | sed -n '5,7p' # 其中-n表示quite模式,
二. 部分数据的搜索并替换
sed 's/要被替换的字符串/新的字符串/g'
删掉'inet '及其之前的内容
$ cat sed_file | grep 'inet '
$ cat sed_file | grep 'inet ' | sed 's/^.*inet //g'

删掉' netmask'及其之后的内容
注意第1种用法不对,被匹配字符串并不是以' netmask'开头,而是在IP之后,还是对'^'和'$'理解不到位。
$ cat sed_file | grep 'inet ' | sed 's/^.*inet //g' | sed 's/ *netmask.*//g'

删掉注释行和空行
$ cat sed_file | sed 's/#.*$//g' # 把注释行替换为空行
$ cat sed_file | sed 's/#.*$//g' | sed '/^$/d' # 删掉空行

-i: 直接修改文件内容
$ sed -i 's/\.$/\!/g' regular_express.txt # 把'.'改为'!'
$ sed -i '$a This is a test' regular_express.txt # 在文件结尾添加一行
-e: 如果sed后面含有两个以上的指令,需要在每个指令前面加上'-e' ,否则报错
$ cat passwd | sed -e '4d' -e '6c no six line' # 删掉第4行并替换第6行。 注意:得到的结果是在新文件中,被替换的行显示为第5行,因为之前删掉了一行
sed的优势:
有一个100万行的文件,如果要在第100行加入某些文字,此时使用vim会疯掉,因为文件太大了,可以通过sed命令直接修改或替换。
Linux命令 sed的更多相关文章
- Linux命令sed
如果一个文本文件数据比较多,大概有40万条数据,我想取出第500-1000条数据,保存到另一个文件,用linux命令该如何操作? sed -n '500,1000p' 41w.txt > new ...
- linux 命令--sed
简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处 ...
- linux 命令 — sed
sed stream editor,流编辑器 查找替换 sed 's/pattern/replace_string/' file 替换每一行第一次出现的pattern,将替换后的文本输出到stdout ...
- linux命令sed与awk是干什么用的,怎么用?
非常强大的文本操纵工具,sed,awk,grep 这个三个命令 都是操作文本文件的unix系统有几个非常命令的特点:1. 对于内核而言,unix文件都是字节序列.io设备也是文件.2. 至于文件的含义 ...
- linux命令sed学习笔记
sed其实就是两个主要的知识点,那就是“怎么选择”和“怎么操作”!
- linux命令-sed,uniq,cut,wc
sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序. sort语法 ...
- (转载)linux命令-sed
原文地址:https://www.cnblogs.com/zhangzongjian/p/10708222.html
- <转>如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
原文链接:http://www.vaikan.com/use-multiple-cpu-cores-with-your-linux-commands/ 你是否曾经有过要计算一个非常大的数据(几百GB) ...
- 《sed的流艺术之四》-linux命令五分钟系列之二十四
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...
随机推荐
- 微信内置浏览器submit函数无效的问题
在表单提交button被点击时.触发提交函数,代码例如以下: <form id="frm_photo" enctype="multipart/form-data&q ...
- numpy中的方差、协方差、相关系数
一.np.var 数学上学过方差:$$ D(X)=\sum_{i\in [0,n)} ({x-\bar{x}})^2 $$ np.var()实际上是均方差,均方差的意义就是将方差进行了平均化,从而使得 ...
- golang sync包
sync 在golang 文档上,golang不希望通过共享内存来进行进程间的协同操作,而是通过channel的方式来进行,当然,golang也提供了共享内存,锁等机制进行协同操作的包: 互斥锁: M ...
- android mat 转 bitmap
Bitmap bmp = null; Mat tmp = new Mat (height, width, CvType.CV_8U, new Scalar(4)); try { //Imgproc.c ...
- class<T>和 class<?>类型
? 表示不确定的java类型. T 表示java类型 Class<T>在实例化的时候,T要替换成具体类Class<?>它是个通配泛型,?可以代表任何类型<? extend ...
- AngularJS判断checkbox/复选框是否选中并实时显示
最近做了一个选择标签的功能,把一些标签展示给用户,用户选择自己喜欢的标签,就类似我们在购物网站看到的那种过滤标签似的: 简单的效果如图所示: 首先看一下html代码: 1 <!DOCTYPE h ...
- python和C++联合调试
python可以利用SO的方式去调用C++中的函数,但是需要一种调试方案来进行python和C++的联合调试,效果是直接在c++代码中打断点,然后python在进行c++so调用的时候,直接进入到断点 ...
- 10款基于jquery的web前端动画特效
1.jQuery横向手风琴图片切换动画 之前我们为大家分享过很多款基于jQuery和CSS3的手风琴菜单和手风琴焦点图插件,比如CSS3响应式垂直手风琴菜单和jQuery横向手风琴图片展示插件.今天要 ...
- 深入理解Java类加载器(ClassLoader)
深入理解Java类加载器(ClassLoader) Java学习记录--委派模型与类加载器 关于Java类加载双亲委派机制的思考(附一道面试题) 真正理解线程上下文类加载器(多案例分析) [jvm解析 ...
- Java分布式集群,使用synchronized和Redis保证Job的原子性
1.使用synchronized保证并发时,同时只会有一个请求执行该代码段: 2.在执行前先设置并获取Reids标记,先设置然后获取确保是否已经执行:SetOption.SET_IF_ABSENT 可 ...