sed

作者: Amy_Cui | 来源:发表于2019-01-06 16:17 被阅读174次

    sed

    可依照script的指令,来处理、编辑文本文件。 多用于对文本的行来操作,
    常见 sed [option] 's///g' tmp.txt


    参数说明

    -e 多次使用sed

    -r 扩展正则表达式

    -n 的时候将只打印包含模板的行

    动作说明

    
    echo 192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0|sed 's/Bcast.*$//g'
    
    # 下面重点 !!!
    
    nl /etc/passwd |sed 's/:/\t/'|less -S
    
    nl /etc/passwd |sed '4,$s/:/\t/'|less -S
    
    nl /etc/passwd | sed -e 's/root/#####/' -e 's/qmcui/###!!!/'|less -S
    
    # nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'    # 多次替换模式
    
    #nl /etc/passwd | sed -e 's/:/\t/;s/:/\t/'|less -S  # 理解;
    
    #nl /etc/passwd | sed 's/false$/&! ! !/' | less -S  # &代指match
    
    # 上面重点 !!!
    
    nl /etc/passwd | sed '1a\llll llllllll \n lllllll'|less -S
    
    nl /etc/passwd | sed '2a drink tea' # 插到第2行后
    
    nl /etc/passwd | sed '2i drink tea' | cat -n    # 插到第2行前
    
    nl /etc/passwd | sed '3,$d' # 删除,熟悉3,$ + 动作命令
    
    nl /etc/passwd | sed '2,5c No 2-5 number'    # 替换2-5行
    
    nl /etc/passwd | sed -n '5,7p'    # 输出
    
    nl /etc/passwd | sed -n '2p;4,5p'
    
    nl /etc/passwd |sed -n '4,+5p'
    
    nl /etc/passwd | sed -n '4~4p'
    
    nl /etc/passwd | sed -n '/root/p'   # 只打印包含模式root的行
    
    nl /etc/passwd | sed '/^$/d'
    
    sed -i 's/\.$/\!/g' regular_express.txt
    
    sed -i '$a # This is a test' regular_express.txt
    
    

    动作含义

    a :新增, a 接字串,而这些字串会在新的一行出现(目前的下一行)~

    c :取代, c接字串,这些字串可以取代 n1,n2 之间的行!

    d :删除, d 后面通常不接任何;

    i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

    p :打印,通常 p 会与参数 sed -n 一起运行~

    s :取代,

    ​ + g:全局替换

    ​ + i:忽略字符大小写

    通配符:

    ​ $:

    ​ 表示行号时:最后一行

    ​ 一行时候:代表行末!

    示例:

    ​ /pattern1/,/pattern2/ :第一次被模式1匹配到的行开始到第一次被模式2匹配到的行结束。

    区域处理

    sed '1,2s/ok//'

       第一二行执行s/ok//操作!

    uptime|sed -n '/,/s/,/ /gp'

    问题中/,/是个正则表达式,用来在s///前面表示区域!表示只要该行中有逗号,那么就执行s命令。

      将含有,的行进行 s/,/ /gp操作,将,全部换成空格并print

    同款示例:

    nl /etc/passwd | sed -n '/root/s/:/\t/p'

    nl /etc/passwd | sed -n '1,2s/:/\t/p'

    不学习: N,n

    相关文章

      网友评论

        本文标题:sed

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