美文网首页
【Linux shell学习笔记-09-sed基础3】

【Linux shell学习笔记-09-sed基础3】

作者: 西布鲁克 | 来源:发表于2021-05-05 23:02 被阅读0次

    3.sed基础-插入和附加文本

    在shell中,插入文本(i)和附加文本(a)的工作机制,是要求在sed命令中使用反斜杠()单独生成一个新的行,插入或附加指定文本,下面举几个例子:

    • 在第3行之前插入指定文本:
    sed '3i\
    > This is an inserted line.' data6.txt
    
    • 在第3行之后附加指定文本:
    sed '3a\
    > This is an inserted line.' data6.txt
    
    • 在文件末尾附加指定文本:
    sed '$a\
    > This is an inserted line.' data6.txt
    

    4.sed基础-修改行

    修改(change)命令允许修改数据流中整行文本的内容。它跟插入和附加命令的工作机制一样,你必须在sed命令中单独指定新行

    • 将第3行修改为指定文本:
    sed '3c\
    > This is a changed line of text.' data6.txt
    
    • 用文本模式来匹配符合条件的行做修改:
    # 将包含'number 3'字符串的行替换为指定文本
    sed '/number 3/c\
    > This is a changed line of text.' data6.txt
    

    5.sed基础-转换命令

    转换(transform)命令(y)是唯一可以处理单个字符的sed编辑器命令。转换命令格式 如下。
    [address]y/inchars/outchars/
    转换命令会对inchars和outchars值进行一对一的映射。inchars中的第一个字符会被转换为outchars中的第一个字符,第二个字符会被转换成outchars中的第二个字符。这个映射过 程会一直持续到处理完指定字符。如果inchars和outchars的长度不同,则sed编辑器会产生一 条错误消息。

    • 将文本中的1转换为7、2转换为8、3转换为9:
    sed 'y/123/789/' data8.txt
    

    相关文章

      网友评论

          本文标题:【Linux shell学习笔记-09-sed基础3】

          本文链接:https://www.haomeiwen.com/subject/gvpkdltx.html