Linux三剑客之sed的基本用法介绍
【介绍】
sed是一款强大的非交互式的文本编辑器,可以对文件文本进行增删改查的相关操作,本文主要是讲解以下sed的基本用法。
【常用选项】
|
-e |
下一个参数为一个sed指令,一般只会用于同一行有多个sed的时候 |
|
-f |
后面跟保存了sed指令的文件 |
|
-i |
直接对内容进行修改,不加i时只是预览,并不做实际改动 |
|
-n |
取消默认输出,只输出处理过的行。 |
【编辑命令】
|
a |
追加·向匹配行后面插入内容 |
|
c |
更改·更改匹配行的内容 |
|
i |
插入·向匹配行前插入内容 |
|
d |
删除·删除匹配的内容 |
|
s |
替换·替换匹配到的内容 |
|
p |
打印·打印匹配到的内容 |
|
= |
打印匹配到的行号 |
|
n |
读取下一行 |
|
r,w |
读和写编辑 |
【命令实例】
·插入行
|
sed '3ahello' test.txt |
在第三行后插入"hello"(新行) |
|
sed '/123/ahello' test.txt |
在内容"123"后插入"hello"(新行,每一个匹配后都添加) |
|
sed '$ahello' test.txt |
在文件最后一行后添加"hello" |
|
sed '3ihello' test.txt |
在第三行前插入"hello"(新行)<其他同上> |
·更改行
|
sed '1chello' test.txt |
将文件第一行替换为hello |
|
sed '/123/chello' test.txt |
将文件包含123的行替换为hello |
|
sed '$chello' test.txt |
将文件最后一行替换为hello |
·删除行
|
sed '4d' test.txt |
删除文件第四行 |
|
sed '1~2d' test.txt |
从第一行开始,每两行删除一行(删除奇数行) |
|
sed '1,2d' test.txt |
删除1,2行 |
|
sed '1,2!d' test.txt |
删除1,2之外所有的行 |
|
sed '$d' test.txt |
删除最后一行 |
|
sed '/123/d' test.txt |
删除匹配123的行 |
|
sed '/123/,$d' test.txt |
删除匹配123的行以及后面所有行 |
|
sed '/123/,+1d' test.txt |
删除匹配123的行以及后面一行 |
|
sed '/^$/d' test.txt |
删除空行 |
|
sed '/123\|abc/!d' test.txt |
删除不匹配123和abc的行(!表示取反) |
|
sed '1,3{/123/d}' test.txt |
删除1~3行中,匹配123的行 |
·替换内容
|
sed 's/123/abc/' test.txt |
将文件中的第一个123替换为abc |
|
sed 's/123/abc/g' test.txt |
将文件中所有的123替换为abc |
|
sed 's/123/abc/2' test.txt |
将每行第二个123替换为abc |
|
sed -n 's/123/abc/gpw test2.txt' test.txt |
将每行中所有的123都替换为abc,并将替换后的内容写到test2.txt |
|
sed '/#/s/,.*//g' test.txt |
匹配所有有#的行,将','以及','以后的内容替换为空 |
|
sed 's/..$//g' test.txt |
将每一行的最后两个字符替换为空,每一个'.'代表一个字符 |
|
sed 's/^#.*//' test.txt |
将每一条以#开头的行都替换为空行 |
|
sed 's/^#.*//;/^$/d' test.txt |
将每一条以#开头的行都去掉(去除注释行,分号做二次操作) |
|
sed 's/^[0-9]/(&)/' test.txt 或者 |
将每一行行首的数字加括号(&代表匹配到的内容) |
|
sed 's/$/&abc/' test.txt |
在每一行后面添加abc字段 |
·打印文件中的行
|
sed -n '3p' test.txt |
打印文件中的第三行内容 |
|
sed -n '2~3p' test.txt |
从第二行开始,每三行打印一行 |
|
sed -n '$p' test.txt |
打印文件最后一行 |
|
sed -n '1,3p' test.txt |
打印一到三行 |
|
sed -n '3,$p' test.txt |
打印第三行到最后一行 |
|
sed -n '/abc/p' test.txt |
逐行读取,打印包含abc的行 |
|
sed -n '/abc/,3p' test.txt |
逐行读取,打印第一次匹配abc的行一直到第三行,并将之后匹配abc的行也打印 |
|
sed -n '2,/abc/p' test.txt |
打印第二行到匹配abc的行 |
|
sed -n '/abc/,$p' test.txt |
打印匹配abc的行到最后一行 |
|
sed -n '/abc/,+1p' test.txt |
打印匹配abc的行及其后一行 |
|
sed -n '/abc/,/123/p' test.txt |
打印从匹配abc的行一直到匹配123的行 |
·打印文件的行号
|
sed -n '$=' test.txt |
打印文件最后一行的行号(同wc -l) |
|
sed -n '/error/=' test.txt |
打印匹配error的行号 |
|
sed -n '/error/{=;p}' test.txt |
打印匹配error的行的行号以及内容 |
·从文件中读取内容
|
sed 'r test2.txt' test1.txt |
会在test1.txt文件的每一行后都追加test2.txt的内容 |
|
sed '3r test2.txt' test1.txt |
在test1.txt文件的第三行后追加test2.txt的内容 |
|
sed '/123/r test2.txt' test1.txt |
在test1.txt文件中匹配123的行后追加test2.txt的内容 |
|
sed '$r test2.txt' test1.txt |
在test1.txt文件的最后一行插入test2.txt的内容 |
·向文件中写
|
sed -n 'w test2.txt' test1.txt |
将test1.txt文件的内容写到test2.txt文件中(如果没有会创建) |
|
sed -n '2w test2.txt' test1.txt |
将test1.txt文件中的第二行内容写入到test2.txt文件中 |
|
sed -n -e '1w test2.txt' -e '$w test2.txt' test1.txt |
将test1.txt文件的第一行和最后一行写入到test2.txt文件中 |
|
sed -n -e '1w test2.txt' -e '$w test3.txt' test1.txt |
将test1.txt文件中的第一行写入到test2文件中; |
|
sed -n '/abc\|123/w test2.txt' test1.txt |
将test1.txt文件重匹配abc或者123的行,写入到test2文件中 |
|
sed -n '/123/,$w test2.txt' test1.txt |
将test1文件中匹配123的行一直到最后一行,写入到test2文件中 |
|
sed -n '/123/,+2w test2.txt' test1.txt |
将test1文件中匹配123的行和之后两行,写入到test2文件中 |
Linux三剑客之sed的基本用法介绍的更多相关文章
- Linux实战教学笔记12:linux三剑客之sed命令精讲
第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...
- day14 linux三剑客之sed命令
day14 linux三剑客之sed命令 sed命令 Sed 主要用来自动编辑一个或多个文件.简化对文件的反复操作.编写转换程序等. sed(流式编辑器) : sed主要用来修改文件. 1.sed命令 ...
- (转)不看绝对后悔的Linux三剑客之sed实战精讲
不看绝对后悔的Linux三剑客之sed实战精讲 原文:http://blog.51cto.com/hujiangtao/1923718 二.Linux三剑客之sed命令精讲 1,前言 我们都知道,在L ...
- Linux 三剑客之sed
目录 Linux 三剑客之sed 命令补充: sort命令 uniq命令 cut命令 tr命令 wc命令 三剑客 - sed 编辑模式: 定位分类: 实例如下: d模式--删除模式 p模式--打印 a ...
- (三)linux三剑客之sed
一.sed是什么? 二.sed的工作原理? 三.sed的基本用法? 四.sed的进阶使用? 一.sed是什么? sed 就是一个非交互式流编译器: 交互式:文件缓存.人工编译.全局并行可逆 非交互式: ...
- linux三剑客之sed命令
一.前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等.如果我们相对这些文件进行一些编辑查询等操作时,我们可能会想到一些vi,vim,cat,more等命令.但是这些命令 ...
- Linux 三剑客 -- awk sed grep
本文由本人收集整理自互联网供自己与网友参考,参考文章均已列出,如有侵权,请告知! 顶配awk,中配sed,标配grep awk 参考 sed 参考 grep 参考 在线查看linux命令速记表 app ...
- linux三剑客之sed深度实践
参数: -a:追加文本到指定行后 -i:插入文本到指定行前 1.单行增加 [root@redhat~]# sed ' 2a 6,f ' linux.tet 1,a 2,b 6,f 3,c 4 ...
- Linux三剑客grep/sed/awk
grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color ...
随机推荐
- LeetCode69 Sqrt(x)
题意: Implement int sqrt(int x). Compute and return the square root of x.(Medium) 分析: 二分搜索套路题,不能开方开尽的时 ...
- 洛谷P2512 [HAOI2008]糖果传递
//不开long long见祖宗!!! #include<bits/stdc++.h> using namespace std; long long n,ans,sum; ],s[]; i ...
- TensorFlow的 卷积层
用 TensorFlow 做卷积 让我们用所学知识在 TensorFlow 里构建真的 CNNs.在下面的练习中,你需要设定卷积核滤波器(filters)的维度,weight,bias.这在很大程度上 ...
- hdu 3938 Portal (prim+离线)
Problem - 3938 题意是要求出给定权值下,满足要求的点对的数目.所谓的要求是,给出两点,之间会有很多路径,这个点对的最小距离是众多路径中,最短的一条路径的长度,路径长度是路径上最长边的长度 ...
- Android Studio(一):介绍、安装、配置
Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...
- 神经网络为什么需要多次epoch
Δw(t)=−ε ∂w(t)∂E +αΔw(t−1)(9) 我们知道反向传播每次迭代的效果是这样的:w=w+Δw(t) w=w+\Delta w(t)w=w+Δw(t) 我们知道,每条训练数据都会导 ...
- H3C 用交换机扩展以太网拓扑
- oracle 优化GROUP BY
提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉.下面两个查询返回相同结果但第二个明显就快了许多. 低效: SELECT JOB , AVG(SAL) FROM ...
- 1、Dapper介绍
1.Dapper是一个轻量级的O/R框架,性能强劲,支持原生sql与模型对象混合写法,通过DapperExtension插件可以实现纯模型的操作(零Sql)语句. 2.创建VS 项目,添加相关的依赖包 ...
- SpringBoot使用logback输出日志并打印sql信息 --经典---
最近在学习springboot以及一些springcloud插件的使用,其中发现默认的配置并不能打印一些有用的日志,所以需要自定义一些日志输出方式以便于查看日志排查问题,目前只整理了两种使用方式,如下 ...