sed - 4 Write commands

前篇回顾
sed - 简介 读取编辑文字档的好工具
sed - 2 Pattern
sed - 3 Delete command

今天聊sed的增加操作

  • a(append) 在匹配行後面新增一行
  • i(insert) 在匹配行前面新增一行
  • r(append from file) 读取外部文件, 在匹配行後面新增
  • w(write the current pattern space to file) 从pattern space把匹配行讯息给写到外部文件的尾巴

重要

首先拿/etc/passwd来玩, 但是我们玩备份的这档案, 别玩etc底下的, 玩完系统就崩溃了

# 复制passwd 到当前目录
cp /etc/passwd ./
  • 在匹配行前面新增一行
sed '/^root/i ItHome' passwd 
> ItHome
> root:x:0:0:root:/root:/bin/bash
> daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
  • 在多个pattern1的行之间, 每行的前面都新增
sed '/^root/,/^sys/i ItHome' passwd 
> ItHome
> root:x:0:0:root:/root:/bin/bash
> ItHome
> daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
> ItHome
> bin:x:2:2:bin:/bin:/usr/sbin/nologin
> ItHome
> sys:x:3:3:sys:/dev:/usr/sbin/nologin
> sync:x:4:65534:sync:/bin:/bin/sync
  • 读取外部文件, 在匹配行後面新增;
    在root开头的匹配行後面, 读取
    这里的文件路径可以是绝对路径/相对路径
sed '/^root/r os.txt' passwd 
> root:x:0:0:root:/root:/bin/bash
> Windows OS	os
> Linux Os os
> Android
> OS
> daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
  • 把匹配行给写到外部文件
    这里的文件路径可以是绝对路径/相对路径
    -n就只输出列印匹配到的内容, 但这里没commandp, 等於不会输出任何资讯, 画面乾净点
    想知道执行结果能搭配grep那边提到的$?
sed -n '/^root/w passwd_demo' passwd
cat passwd_demo
> root:x:0:0:root:/root:/bin/bash
  • 在文件第一行新增
    有时会想再文件前面加点注解还是修改历程
    借助之前提到的定位符, 针对第1行做insert的动作
sed '1i #comment 13th ItHome\n#Arthor:Nathan' passwd
> #comment 13th ItHome
> #Arthor:Nathan
> root:x:0:0:root:/root:/bin/bash
> daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
  • 在文件末尾新增
sed '$a #comment 13th ItHome\n#Arthor:Nathan' passwd
> systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
> #comment 13th ItHome
> Arthor:Nathan

<<:  Angular ng-template 与 ngTemplateOutlet

>>:  [Day 12] 从 tensorflow.keras 开始的 MobileNet 生活

Day 7 拖动上传图片辨识数字

今天要做的是... 做一个前端网页,支援拖动图片上传, 把图片转成 base64 送给服务器,服务器...

DAY25:Broadcast receiver之实作

今天要来做上篇所提到的广播功能实作罗! 首先,我们还是要先来将画面配置完成,这里做的就是简单的三个B...

什麽是MVC框架? 如何用UML建模?

MVC模式的架构元件被设计用来处理开发中的应用程序的不同方面。MVC设计模式的作用是将表现层与业务逻...

Day 7: LeetCode 485. Max Consecutive Ones

Tag:随意刷-每月挑战(2021.09.21) Source: 485. Max Consecut...

学习Python纪录Day22 - 用Kaggle上的dataset当例子

显示工作表每一列的值 wb = load_workbook("Top 10 most St...