前言

简单介绍一下sed 和 awk。

正文

这两个和vim的区别:

vim 是交互式和 他们是非交互式

vim是文件操作模式与他们是行交互模式

sed

sed 的 模式空间。

sed的基本工作方式是:

  1. 将文件以行为单位读取到内存(模式空间)

  2. 使用sed的每个脚本对该行进行操作

  3. 处理完成后输出该行

替换命令s:

这里-e 是可以替换几个,而这里-i就是替换完写入到文件中。

如果要替换的是/,那么可以使用!替换/做分割。

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

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

这样既可。

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

就是前面提及的那些+ | 这些扩展包。

有一个值得注意的是就是|,这个表示或的意思,但是如果是aa|bb,这个表示的是 aab 或者 abb的意思,而不是aa或者bb,这个得加();

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

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

例如:

那么还有一些替换需要介绍的。

标志位:

这个g是全部的意思,但是如果只想匹配前两个呢?

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

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

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

寻址:

分组:

sed 脚本文件:

下一节sed的其他命令

重新点亮shell————sed的替换[十]的更多相关文章

  1. Python3学习之路~2.8 文件操作实现简单的shell sed替换功能

    程序:实现简单的shell sed替换功能 #实现简单的shell sed替换功能,保存为file_sed.py #打开命令行输入python file_sed.py 我 Alex,回车后会把文件中的 ...

  2. 3-1 实现简单的shell sed替换功能

    1.需求 程序1: 实现简单的shell sed替换功能 file1 的内容copy到file2 输入参数./sed.py  $1  $2 $1替换成$2 (把a替换成% ) 2.个人思路 open ...

  3. 4.实现简单的shell sed替换功能

    # -*- coding:utf-8 -*- # Author: JACK ZHAO # 程序1: 实现简单的shell sed替换功能 import sys #判断参数个数 if len(sys.a ...

  4. python 3.x 写 shell sed 替换功能

    shell sed 替换功能 f1 = open('yesterday','r',encoding='utf-8') f2 = open('yesterday2','w',encoding='utf- ...

  5. [sed] linux sed 批量替换字符串

    比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl ...

  6. Linux sed 批量替换多个文件中的字符串【转载】

    原文网址:http://blog.sina.com.cn/s/blog_730edb930100qzz5.html     比如,要将目录/modules下面所有文件中的zhangsan都修改成lis ...

  7. Shell 快速入门(十八):特殊符号的使用

    在 Shell 语言中,经常会看到中括号和括号组成的特殊标识,例如:[].[[]].(()).$(()).().这些符号经常使我们非常迷惑,弄清楚它们之间的作用和区别非常必要. 在开始之前,我们先来学 ...

  8. linux sed 批量替换多个文件中的字符

    格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` linux sed 批量替换多个文件中的字符串 sed -i "s/oldst ...

  9. shell变量的替换,命令的替换,转义字符

    1,shell变量的替换 变量可以根据变量是否为空或者被删除,而被替换为特定的值 ${var}  变量本来的值 $(var:-word)   如果变量为空,或者已被删除那么返回word,但是不改变va ...

  10. shell sed过滤器详解

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

随机推荐

  1. Java 多线程---线程优先级

    Java 实例 - 线程优先级设置 以下实例演示了如何通过setPriority() 方法来设置线程的优先级: 1 SimplePriorities.java 文件 2 public class Si ...

  2. Codeforces Round 345 (Div. 1)A. Watchmen(容斥原理)

    A. Watchmen 当欧几里得距离和曼哈顿距离相等时,\(x1==x2||y1==y2\) 这两个条件满足其一.这和容斥原理一样,至少选择一个的条件. 我们可以计算xi,以及小于i之前的这些,这样 ...

  3. 全面解析 Redis 持久化:RDB、AOF与混合持久化

    前言: 每次你在游戏中看到玩家排行榜,或者在音乐应用中浏览热门歌单,有没有想过这个排行榜是如何做到实时更新的?当然,依靠 Redis 即可做到. 在技术领域,我们经常听到「键值存储」 这个词.但在 R ...

  4. 记一次docker安装Jenkins

    docker安装Jenkins 0. 下载docker镜像 docker search jenkins docker pull jenkins/jenkins:lts 1. 安装步骤 创建映射文件夹 ...

  5. 如何在数据库中存储小数:FLOAT、DECIMAL还是BIGINT?

    前言 这里还是用前面的例子: 在线机票订票系统的数据表设计.此时已经完成了大部分字段的设计,可能如下: CREATE TABLE flights ( flight_id INT AUTO_INCREM ...

  6. 【虚拟仿真】3DCAT虚拟仿真在化工安全方面的应用

    随着中国经济的快速发展,石油化工企业的生产事故也在频繁发生.国家目前对生产安全的重视程度提高到前所未有的高度.企业也在安全管理上做了许多工作,如:进行安全培训,制定安全手册等.但这些方式的效果不明显, ...

  7. Java博客大汇总

    目录介绍 01.Java基础[30篇] 02.面向对象[15篇] 03.数据结构[27篇] 04.IO流知识[11篇] 05.线程进程[9篇] 06.虚拟机[12篇] 07.类的加载[7篇] 08.反 ...

  8. 记录--vue3优雅的使用element-plus的dialog

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 如何优雅的基于 element-plus,封装一个梦中情 dialog 优点 摆脱繁琐的 visible 的命名,以及反复的重复 dom. ...

  9. 二次元 & 动漫壁纸网站(内容记录)

    前言 天天和电脑.手机以及平板等电子设备打交道,一个好看的桌面壁纸图片当然是必不可少的,也曾经分享过<值得珍藏的高清壁纸网站推荐>,各种类型和分辨率的壁纸都有. 今天再分享些「高清二次元& ...

  10. TorchV的RAG实践分享(二):基于ElasticSearch的混合检索实战&原理分析

    概述 在昨天员外分享的<TorchV的RAG实践分享(1)--RAG的定位.技术选型和RAG技术文章目录>一文中介绍了TorchV的由来,也分享了我们的几个基线产品和应用架构的方向,我们想 ...