码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux-sed


    sed

    sed是一种几乎包括所有UNIX平台(包括Linux)的轻量级流编辑器。sed主要用来将数据进行选取、替换、删除、新增的命令

    sed [选项] ‘[动作]’ 文件名
    选项:
    -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选项,则只会把经过sed命令处理的行输出到屏幕
    -e:允许对输入数据应用多条sed命令编辑
    -i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出

    动作:
    a \:追加,在当前行后添加一行或多行,添加多行时,除最后一行外,每行末尾需要用\代表数据未完结
    c \:行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用\代表数据未完结
    i \:插入,在当前行插入一行或多行,插入一行时,除最后一行外,每行末尾需要用\代表数据未完结
    d:删除,删除指定行
    p:打印,输出指定的行
    s:字串替换,用一个字符串替换另外一个字符串,格式为“行范围s/旧字串/新字串/g”

    例子

    student.txt的内容如下:
    在这里插入图片描述

    查看文件第二行
    #查看文件第二行,整个文件输出的同时,再把第二行输出
    [root@centos01 shellcode]# sed '2p' student.txt 
    ID	name	sex	score
    1	ll	M	90
    1	ll	M	90
    2	yy	F	88
    3	uu	M	88
    #查看多行
    [root@centos01 shellcode]# sed '3,4p' student.txt 
    ID	name	sex	score
    1	ll	M	90
    2	yy	F	88
    2	yy	F	88
    3	uu	M	88
    3	uu	M	88
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    只查看文件第几行
    [root@centos01 shellcode]# sed -n '3p' student.txt 
    2	yy	F	88
    #查看第二行到第四行
    [root@centos01 shellcode]# sed -n '2,4p' student.txt 
    1	ll	M	90
    2	yy	F	88
    3	uu	M	88
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    删除行
    #没有使用-i,不会修改文件本身
    [root@centos01 shellcode]# sed '2,3d' student.txt 
    ID	name	sex	score
    3	uu	M	88
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    追加
    #在第二行后追加hello
    [root@centos01 shellcode]# sed '2a hello' student.txt 
    ID	name	sex	score
    1	ll	M	90
    hello
    2	yy	F	88
    3	uu	M	88
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    替换行
    #将第二行替换成No data
    sed '2c No data' student.txt 
    ID	name	sex	score
    No data
    2	yy	F	88
    3	uu	M	88
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    字符串替换

    sed ‘s/旧字符串/新字符串/g’ 文件名
    替换全部:

    #将全部的88都替换成70
    sed 's/88/70/g' student.txt 
    ID	name	sex	score
    1	ll	M	90
    2	yy	F	70
    3	uu	M	70
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    替换某一行:

    #将第三行的88替换成70
    [root@centos01 shellcode]# sed '3s/88/70/g' student.txt 
    ID	name	sex	score
    1	ll	M	90
    2	yy	F	70
    3	uu	M	88
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    替换多个字符串:

    #将第二行的ll替换成hg,将第三行的yy替换成gh
    sed -e '2s/ll/hg/g;3s/yy/gh/g' student.txt 
    ID	name	sex	score
    1	hg	M	90
    2	gh	F	88
    3	uu	M	88
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    将数据直接写入文件
    #将第三行的88替换成60,并且修改文件
    sed -i '3s/88/60/g' student.txt 
    
    • 1
    • 2

    在这里插入图片描述

  • 相关阅读:
    防火墙NAT配置实验
    【物联网安全知多少?】
    YOLO目标检测——汽车头部尾部检测数据集【含对应voc、coco和yolo三种格式标签】
    ffmpeg综合应用示例(五)——多路视频合并(Linux版本)
    BAT学习——计算当前路径下指定格式文件的MD5值,将文件名与MD5值写入文本
    vmware配置静态ip
    JavaCV音视频开发宝典:UDP广播推流 使用UDP方式推送广播TS流 实现UDP一对多广播
    Java下Properties类的使用(写出和读入)
    【算法训练-二叉树 六】【路径和计算】路径总和I、路径总和II、路径总和III、二叉树的最大路径和
    PTA 浙大版《C语言程序设计(第4版)》题目集 参考答案(函数题)
  • 原文地址:https://blog.csdn.net/ljsykf/article/details/128009471
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号