重新点亮shell————sed的替换[十]
前言
简单介绍一下sed 和 awk。
正文
这两个和vim的区别:
vim 是交互式和 他们是非交互式
vim是文件操作模式与他们是行交互模式
sed
sed 的 模式空间。
sed的基本工作方式是:
将文件以行为单位读取到内存(模式空间)
使用sed的每个脚本对该行进行操作
处理完成后输出该行
替换命令s:


这里-e 是可以替换几个,而这里-i就是替换完写入到文件中。
如果要替换的是/,那么可以使用!替换/做分割。

多个替换可以用-e 隔开,同样可以这样:

这里s 是替换,那么如果将匹配的内容置为空呢?

这样既可。
替换是支持正则表达的,但是如果要支持扩展的正则表达,需要加上-r。

就是前面提及的那些+ | 这些扩展包。
有一个值得注意的是就是|,这个表示或的意思,但是如果是aa|bb,这个表示的是 aab 或者 abb的意思,而不是aa或者bb,这个得加();

() 这个括号其实是元组的概念,如果想看正则,可以看我的正则分类的那几篇。

我们可以发现上面的替换,都只是替换某一行的第一个,但是要替换一行的全部呢?需要加一个/g。
例如:

那么还有一些替换需要介绍的。
标志位:
这个g是全部的意思,但是如果只想匹配前两个呢?


这个p,就是匹配成功的行会被打印:

同样上面也看到了匹配成功的行多打印了,但是有一个问题就是希望只打印匹配成功的行怎么办?

然后这个-w,就是匹配成功的行写入到文件中去。

寻址:

分组:

sed 脚本文件:

结
下一节sed的其他命令
重新点亮shell————sed的替换[十]的更多相关文章
- Python3学习之路~2.8 文件操作实现简单的shell sed替换功能
程序:实现简单的shell sed替换功能 #实现简单的shell sed替换功能,保存为file_sed.py #打开命令行输入python file_sed.py 我 Alex,回车后会把文件中的 ...
- 3-1 实现简单的shell sed替换功能
1.需求 程序1: 实现简单的shell sed替换功能 file1 的内容copy到file2 输入参数./sed.py $1 $2 $1替换成$2 (把a替换成% ) 2.个人思路 open ...
- 4.实现简单的shell sed替换功能
# -*- coding:utf-8 -*- # Author: JACK ZHAO # 程序1: 实现简单的shell sed替换功能 import sys #判断参数个数 if len(sys.a ...
- python 3.x 写 shell sed 替换功能
shell sed 替换功能 f1 = open('yesterday','r',encoding='utf-8') f2 = open('yesterday2','w',encoding='utf- ...
- [sed] linux sed 批量替换字符串
比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl ...
- Linux sed 批量替换多个文件中的字符串【转载】
原文网址:http://blog.sina.com.cn/s/blog_730edb930100qzz5.html 比如,要将目录/modules下面所有文件中的zhangsan都修改成lis ...
- Shell 快速入门(十八):特殊符号的使用
在 Shell 语言中,经常会看到中括号和括号组成的特殊标识,例如:[].[[]].(()).$(()).().这些符号经常使我们非常迷惑,弄清楚它们之间的作用和区别非常必要. 在开始之前,我们先来学 ...
- linux sed 批量替换多个文件中的字符
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` linux sed 批量替换多个文件中的字符串 sed -i "s/oldst ...
- shell变量的替换,命令的替换,转义字符
1,shell变量的替换 变量可以根据变量是否为空或者被删除,而被替换为特定的值 ${var} 变量本来的值 $(var:-word) 如果变量为空,或者已被删除那么返回word,但是不改变va ...
- shell sed过滤器详解
1. Sed简介sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中 ...
随机推荐
- Docker 安装成功(win10家庭版)
https://desktop.docker.com/win/stable/Docker Desktop Installer.exe 安装遇到了 然后 更新 这个 https://wslstorest ...
- C#中的JSON序列化方法
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET--NET的流行高性能JSON框架,当然也可以使用.NET自带的 System.Text.Json(.NET5).DataContra ...
- ubuntu环境下python下使用OpenCV库读取USB摄像头的画面
一 概念 OpenCV是一个开源的计算机视觉和机器学习软件库.它可以使用pip命令行中的以下命令安装:"pip install opencv-python" 这个做视觉处理,非常的 ...
- 心电芯片ADS1292 KS1081 AD8232等的比较
首先看ADS1292, 从品牌和信誉,TI出品,这个来说应该是相对好一点的,医疗级水准的信号.内置24位的ADC,,噪声和整体功能都很全面,放大倍数1-12倍.应用在穿戴场合的缺点是:这个芯片封装尺寸 ...
- 关于linux系统版本的一个分类展现
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文发布于 2014-07-06 22:58:35 ...
- 记录--uniapp 使用原生子窗体进行视频聊天
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 现在 uniapp 开发的实时音视频聊天类的 APP 大部分都要在 nvue 页面上进行开发.虽然 nvue 与 vue 的区别不是很大, ...
- Hong Kong Azure / .NET club first meetup - WPF business value in the financial industry
The first meeting of the Hong Kong Azure / .NET Club was held on December 29, 2019 at Starbucks, She ...
- Error in beforeDestroy hook: “Error: [ElementForm]unpected width “found in
吹水,可忽略 当我尝试吧el-form中labelWidth设为auto时,刷新页面获取到了上面的错误 百思不得其解,我貌似没有在beforeDestroy进行操作,为何会报这个错误 果断各种百度,G ...
- c# 正则提取内容例子
分类 代码/语法 说明 捕获 (exp) 匹配exp,并捕获文本到自动命名的组里 (?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp) ...
- OREPA:阿里提出训练也很快的重参数策略,内存减半,速度加倍 | CVPR 2022
论文提出了在线重参数方法OREPA,在训练阶段就能将复杂的结构重参数为单卷积层,从而降低大量训练的耗时.为了实现这一目标,论文用线性缩放层代替了训练时的BN层,保持了优化方向的多样性和特征表达能力.从 ...