zoukankan      html  css  js  c++  java
  • sed命令学习

    sed命令是轻量级流编辑器,主要用来将数据进行选取、替换、删除、新增的命令

    sed [选项]  ‘[动作]’  文件名

    选项:

    — -n: 一般sed命令会把所有数据都输出到屏幕上,如果假如此选择,则只会把经过sed命令处理的行输出到屏幕

    — -e:允许对输入的数据应用多条sed命令编辑

    — -i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出。

    动作:

    — a:追加,在当前行后添加一行或多行

    — c:行替换,用c后面的字符串替换原数据行

    — i:插入,在当前行前插入一行或多行。

    — d:删除,删除指定的行

    — p:打印,输出指定的行

    —s :字符替换,用一个字符串替换另外一个字符串。格式为:“行范围s/旧字符串/新字符串/g” (和vim中的替换格式类似)(如果不加g,表示只对第一个有效,不管后面出现的)

    测试数据:

    1.打印第二行

    [root@myfuture ~]# sed '2p' student.txt 
    ID    Name    gender    Mark
    1    furong    F    85
    1    furong    F    85
    2    fengj    F    60    
    3    cang    F    70

    加入-n参数

    [root@myfuture ~]# sed -n '2p' student.txt 
    1    furong    F    85

    2.删除第二行:

    [root@myfuture ~]# sed '2d' student.txt
    ID    Name    gender    Mark
    2    fengj    F    60    
    3    cang    F    70

    3.删除第二行和第四行之间的内容

    [root@myfuture ~]# sed '2,4d' student.txt
    ID    Name    gender    Mark

    4.在第二行后追加数据

    [root@myfuture ~]# sed '2a piaoliang jiushi renxing'  student.txt
    ID    Name    gender    Mark
    1    furong    F    85
    piaoliang jiushi renxing
    2    fengj    F    60    
    3    cang    F    70

    第二行前添加数据

    [root@myfuture ~]# sed '2i meinv' student.txt
    ID    Name    gender    Mark
    meinv
    1    furong    F    85
    2    fengj    F    60    
    3    cang    F    70

    5.数据替换

    [root@myfuture ~]# sed '2c furong bu ji ge' student.txt
    ID    Name    gender    Mark
    furong bu ji ge
    2    fengj    F    60    
    3    cang    F    70

    第三行的60替换为90

    [root@myfuture ~]# sed '3s/60/99/g' student.txt
    ID    Name    gender    Mark
    1    furong    F    85
    2    fengj    F    99    
    3    cang    F    70

    将修改直接写入文件

    [root@myfuture ~]# sed -i '3s/60/99/g' student.txt
    [root@myfuture ~]# cat student.txt
    ID    Name    gender    Mark
    1    furong    F    85
    2    fengj    F    99    
    3    cang    F    70

    同时把fengj和cang替换为空,加入-e

  • 相关阅读:
    【51nod】2590 持续讨伐
    【51nod】2589 快速讨伐
    【51nod】2606 Secondary Substring
    【LOJ】#3098. 「SNOI2019」纸牌
    【洛谷】P4202 [NOI2008]奥运物流
    【LOJ】#3103. 「JSOI2019」节日庆典
    【LOJ】#3102. 「JSOI2019」神经网络
    【洛谷】P5348 密码解锁
    【洛谷】P4883 mzf的考验
    【LOJ】#3101. 「JSOI2019」精准预测
  • 原文地址:https://www.cnblogs.com/XYJK1002/p/5330355.html
Copyright © 2011-2022 走看看