在n行前插入

[root@wen data]# sed '2i 106,dandan,CSO' person.txt
101,oldboy,CEO
106,dandan,CSO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
在n行后插入
[root@wen data]# sed '2a 106,dandan,CSO' person.txt
101,oldboy,CEO
102,zhangyao,CTO
106,dandan,CSO
103,Alex,COO
104,yy,CFO
105,feixue

插入多行
[root@wen data]# sed '2a 106,dandan,CSO\n107,bingbing,CCO' person.txt
101,oldboy,CEO
102,zhangyao,CTO
106,dandan,CSO
107,bingbing,CCO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
CIO
[root@wen data]# sed '2a 106,dandan,CSO\
> 107,bingbing,CCO' person.txt
101,oldboy,CEO
102,zhangyao,CTO
106,dandan,CSO
107,bingbing,CCO
103,Alex,COO
104,yy,CFO
105,feixue,CIO

删除指定行
[root@wen data]# sed '2d' person.txt
101,oldboy,CEO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
[root@wen data]# sed '1~2d' person.txt
102,zhangyao,CTO
104,yy,CFO
[root@wen data]# sed '1,+2d' person.txt
104,yy,CFO
105,feixue,CIO
[root@wen data]# sed '2,3d' person.txt
101,oldboy,CEO
104,yy,CFO
105,feixue,CIO
[root@wen data]# sed '/feixue/,2d' person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
--------------------
替换
按行替换
[root@wen data]# sed '2c 106,dandan,CSO' person.txt
101,oldboy,CEO
106,dandan,CSO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
精确到行替换,s前面添加行号n
[root@wen data]# sed "2s#CTO#CCO#g" person.txt
101,oldboy,CEO
102,zhangyao,CCO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
------
[root@wen data]# cat test.txt
a
b
a
[root@wen data]# x=a
[root@wen data]# y=b
[root@wen data]# echo $x $y
a b
[root@wen data]# sed 's#$x#Sy#g' test.txt
a
b
a
双引号解析变量
[root@wen data]# sed "s#$x#$y#g" test.txt
b
b
b
[root@wen data]# eval sed 's#$x#$y#' test.txt
b
b
b


[root@wen data]# sed '1,3s#C#--&--#g' person.txt
101,oldboy,--C--EO
102,zhangyao,--C--TO
103,Alex,--C--OO
104,yy,CFO
105,feixue,CIO

批量修改文件名
&代表前面匹配到的字符

[root@wen test1]# touch stu_102999_{1..5}_finished.jpg
[root@wen test1]# ls
stu_102999_1_finished.jpg stu_102999_3_finished.jpg stu_102999_5_finished.jpg
stu_102999_2_finished.jpg stu_102999_4_finished.jpg
[root@wen test1]# ls|sed -r 's#(^.*)_finished(.*$)#mv & \1.jpg#g'|bash
[root@wen test1]# ls
stu_102999_1.jpg stu_102999_3.jpg stu_102999_5.jpg
stu_102999_2.jpg stu_102999_4.jpg

---------------------------------

sed 使用-n,必须和p一起
-n 取消默认输出
[root@wen data]# sed '2p' person.txt
101,oldboy,CEO
102,zhangyao,CTO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
[root@wen data]# sed -n '2p' person.txt
102,zhangyao,CTO
[root@wen data]# sed -n 'p' person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO

10.15 sed 命令实践的更多相关文章

  1. Ubuntu 14.10 下sed命令详解

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

  2. 掌握Sed命令

    带书签PDF版,喜欢的话,欢迎多提意见和建议,你的支持是血蝙蝠最大的前进动力! http://download.csdn.net/detail/challenge_c_plusplus/6480007 ...

  3. 10 sed命令的基本用法

    grep灵活的关联正则表达式实现文件过滤,而sed是一个数据流的编辑器,或者说是一个行编辑器,它将文件一行一行的数据放入到内存中进行编辑,而awk是一个报告生成器,这个我们以后再说: 之前我们介绍过g ...

  4. sed命令的正则表达式实践

    1. 取系统ip [root@oldboy logs]# ifconfig eth3 eth3 Link encap:Ethernet HWaddr 08:00:27:4C:6F:AD inet ad ...

  5. 【三剑客】sed命令

    1. Sed 简介 sed 是Stream Editor(流编辑器)的缩写,是操作.过滤和转换文本内容的强大工具.常用功能有增删改查,过滤,取行.   sed 是一种新型的,非交互式的编辑器. 它能执 ...

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

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

  7. [shell基础]——sed命令

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

  8. sed命令教程

    转载自:http://coolshell.cn/articles/9104.htmlawk于1977年出生,今年36岁本命年,sed比awk大2-3岁,awk就像林妹妹,sed就是宝玉哥哥了.所以 林 ...

  9. sed命令详解及应用实例

    第一部分:Sed基本用法 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏 ...

随机推荐

  1. 从零搭建一个Redis服务

    前言 自己在搭建redis服务的时候碰到一些问题,好多人只告诉你怎么成功搭建,但是并没有整理过程中遇到的问题,所有楼主就花了点时间来整理下. linux环境安装redis 安装中的碰到的问题和解决办法 ...

  2. vmware内部错误

    今天不知道怎么回事 wmware workstation重启的时候总是报内部错误 差点重装了 幸亏找到了这个 原来只要以管理员的身份运行vwware就ok了 http://www.xiaoluobok ...

  3. 获取EasyUI日期输入框的值

    var date = $('#PurDate').datebox('getValue');

  4. .net Datatable

    1. ROW remove vs delete datatable dt = new datatable() //fill 5 records for each row as datarow in d ...

  5. UVA1626 括号序列 Brackets sequence(区间dp)

    题目传送门(洛谷)   题目传送门(UVA) 解题思路 很显然是一个区间dp,当然记忆化搜索完全可以AC,这里说一下区间dp. 区间dp的重要特征就是需要枚举中间节点k 看一看这道题,用f[i][j] ...

  6. 【题解】Sigitseeing Tour

    题目大意 有一张$n$个结点,$m$条混合边的图($1 \leq n \leq 200$,$1 \leq m \leq 1000$),求这张图是否存在欧拉回路. 题解 因为有混合边,所以我们要先给无向 ...

  7. 用php实现一个简单的爬虫,抓取电影网站的视频下载地址

    昨天没什么事,先看一下电影,就用php写了一个爬虫在视频网站上进行视频下载地址的抓取,这里总结一下抓取过程中遇到的问题 1:通过访问浏览器来执行php脚本这种访问方式其实并不适合用来爬网页,因为要受到 ...

  8. C#设计模式:组合模式(Composite Pattern)

    一,C#设计模式:组合模式(Composite Pattern) using System; using System.Collections.Generic; using System.Linq; ...

  9. html中内联元素和块级元素的区别

    1.下表列出了内联元素和块级元素的主要区别 html中内联元素和块级元素的区别 块级元素 行内元素 独占一行,默认情况下,其宽度自动填满其父元素宽度 相邻的行内元素会排列在同一行里,直到一行排不下,才 ...

  10. PyInstaller库的使用

    PyInstaller库的使用 PyInstaller库用于将已经写好的py程序,转换成可以跨平台的可执行文件 使用方式 发布主要借助cmd命令行来实现.在当前目录的powershell下,输入 py ...