Linux中sed基础
sed是一种流编辑器,它是文本处理中非常重要的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
sed命令常用参数
常用命令
| 函数命令 | 说明 |
| 1,n | 需要操作的行,第一行至第N行 |
| s | search 查找替换,这个命令使用最多 |
| a | append 添加 |
| i | insert 插入 |
| c | 替换 |
| d | 删除行 |
| p | 打印 |
还有两个最重要的参数
-n 使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-i 直接替换原文件,不加-i都不会修改原文件,只是输出或者放置内存中。
sed常用命令的使用
cat test.txt
111
222
333
444
555
666
777
打印第三行至第五行
sed -n '3,5p' test.txt
333
444
555
删除第三至第五行
sed '3,5d' test.txt
111
222
666
777
删除第三至第五行并修改原文件
sed -i '3,5d' test.txt
cat test.txt
111
222
666
777
第二行之前添加qqq
sed '2i qqq' test.txt
111
qqq
222
333
444
555
666
777
第二行之后添加qqq
sed '2a qqq' test.txt
111
222
qqq
333
444
555
666
777
第二行替换为qqq
sed '2c qqq' test.txt
111
qqq
333
444
555
666
777
sed最重要的s命令,查找替换
sed "s/查找/替换/g" g表示一行全部替换,默认一行只替换第一个
cat test.txt
111
222
111
444
555
sed "s/1/php/" test.txt
php11
222
php11
444
555
sed "s/1/php/g" test.txt
phpphpphp
222
phpphpphp
444
555
跟正则相似。^表示每一行开始,$表示每一行结束。正则匹配是遵循规范的。
每一行开始加//
sed "s/^/\/\//g" test.txt
//111
//222
//111
//444
//555
每一行行尾加;
sed "s/$/;/g" test.txt
111;
222;
111;
444;
555;
替换满足条件某一个字符
替换每一行的第二匹配字符1,替换成+
sed "s/1/+/2" test.txt
1+1
222
1+1
444
555
多个匹配替换用;隔开
把2替换成+,把4替换成-
sed "s/2/+/g;s/4/-/g" test.txt
111
+++
111
---
555
圆括号子集,在替换结果里面使用\1 \2 \n
cat test.txt
1hello1
222
111
444
555
sed "s/1\(.*\)1/wo\1/g" test.txt
wohello
222
wo1
444
555
常用的项目文件替换
把当前项目中所有文件中的111替换成helloworld
sed -i "s/111/helloworld/g" `grep -rl . *`
Linux中sed基础的更多相关文章
- Linux中sed的用法实践
Linux中sed的用法实践 参考资料:https://www.cnblogs.com/emanlee/archive/2013/09/07/3307642.html http://www.fn139 ...
- Linux中Sed的用法
Linux中Sed的用法 sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: ...
- linux中sed命令(全面解析)
目录 一:linux中sed命令介绍 1.sed作用 2.sed命令格式 3.参数 4.sed的编辑模式 5.sed参数解析用法 二:sed 参数 -f 案例实战解析 1.前介 2.引入简介 3.方法 ...
- linux之sed基础命令详解
sed (Stream EDitor)是一个强大的字符流编辑器,输入一般是来自文件,默认情况下不编辑原文件,仅对模式空间中的数据作处理;而后,将模式空间打印到屏幕显示 sed基础用法 sed [op ...
- linux之 sed 基础
转载:https://www.cnblogs.com/chensiqiqi/p/6382080.html sed 介绍 Sed命令是操作,过滤和转换文本内容的强大工具.常用功能有增删改查(增加,删除, ...
- Linux中shell基础、重定向、管道符、环境变量
1.什么是shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器).它接收用户输入的命令并把它送入内核去执行.起着协调用户与系统的一致性和在用户与系统之间进行交互的 ...
- Linux中的基础
前言: 这里介绍Linux基础管理.主要包括.Linux中的帮助命令(man.help).系统基础(开机.关机.重启) 一.Linux中的帮助命令. 1.内部命令: #help 命令名 例如:help ...
- Linux 中,基础命令 command not found...问题
linux中出现基本命令找不到的问题,经过查找发现是/etc/profile文件出现了问题,解决方案如下: 问题详细: [root@master ~]# ll bash: ls: command no ...
- linux中sed的用法【转】
sed命令行格式为: sed [-nefri] ‘command’ 输入文本/文件 常用选项: -n∶取消默认的输出,使用安静(silent)模式.在一般 sed 的 ...
随机推荐
- 推荐Java五大微服务器及其代码示例教程
来源素文宅博客:http://blog.yoodb.com/yoodb/article/detail/1339 微服务越来越多地用于开发领域,因为开发人员致力于创建更大,更复杂的应用程序,这些应用程序 ...
- 别翻了,这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析【JVM篇二】
目录 1.什么是类的加载(类初始化) 2.类的生命周期 3.接口的加载过程 4.解开开篇的面试题 5.理解首次主动使用 6.类加载器 7.关于命名空间 8.JVM类加载机制 9.双亲委派模型 10.C ...
- C++中对C的扩展学习新增语法——const
Const Const在C语言和C++语言中连接属性不一样,C语言默认是外部连接,如果需要内部连接,需要显示写上static.而在C++中默认是内部连接,如果希望其编程外部变量,需要显示写上exte ...
- python 做一个简单的登录接口
# -*- conding :utf-8 -*-# File Name: homewoe# Create Date: 2019/11/20 / 9:15# Change Activity: 2019/ ...
- pug参考文档
1. API express框架的渲染模板有多种选择,官方的例子是Pug,网上找了一下,Pug没有可以参考的中文文档,于是自己动手丰衣足食.翻译水平一般,各位凑合着看吧. 1.1 开始 安装 通过np ...
- Session,Cookie的区别
1. 为什么要有session的出现? 答:是由于网络中http协议造成的,因为http本身是无状态协议,这样,无法确定你的本次请求和上次请求是不是你发送的.如果要进行类似论坛登陆相关的操作,就实现不 ...
- Vue注册组件命名时不能用大写的原因浅析
命名使用注意事项: https://www.jb51.net/article/160227.htm
- vue cli3.0 封装组件全局引入js文件并发布到npm
首先用 vue create创建一个项目 当前的项目目录是这样的: 首先需要创建一个 packages 目录,用来存放组件 然后将 src 目录改为 examples 用作示例 二.修改配置 启动项目 ...
- 如何使用C#调用C++类虚函数(即动态内存调用)
本文讲解如何使用C#调用只有.h头文件的c++类的虚函数(非实例函数,因为非虚函数不存在于虚函数表,无法通过类对象偏移计算地址,除非用export导出,而gcc默认是全部导出实例函数,这也是为什么 ...
- java集合讲解
java集合讲解 1.概述 集合类的顶级接口是Iterable,Collection继承了Iterable接口 常用的集合主要有 3 类,Set,List,Queue,他们都是接口,都继于Collec ...