zoukankan      html  css  js  c++  java
  • sed常用命令

    sed也是一个管道命令。

    sed [-nefr] [动作]

    -n 加上-n参数后,只有经过sed特殊处理的那些行才会被列出来

    -e 直接在命令行模式进行sed的动作编辑

    -i  直接修改读取的文件内容,而不是由屏幕输出。

    -f 直接将sed的动作写在一个文件内,-f filename则可以执行filename内的sed动作

    -r sed的动作支持的是扩展型正则表达式的语法

    动作说明:

    [n1][,n2]function

    n1,n2:不见得会存在,一般代表选择进行动作的行数

    function的参数:

    a: 新增,a的后面可以接字符串,这些字符串会出现在新一行。(目前行的下一行)

    c: 替换,c的后面可以接字符串,这些字符串可以替换n1,n2之间的行

    d: 删除

    i: 插入,i的后面可以接字符串,这些字符串会出现在目前行的前一行

    p: 打印,通常与sed -n一起使用

    s: 可以部分替换,s动作可以搭配正则表达式。 如: 1,20s/old/new/g

    以行为单位的新增/删除功能

    nl /etc/passwd | sed '2,5d' 表示删除2~5行,本应该执行sed -e,但是没有-e也行。sed后的动作,必须用' '括起来。如果要删除第3到最后一行,则是 nl /etc/passwd | sed '3,$d',那个"$"代表最后一行

    在第二行前增加行。

    nl /etc/passwd | sed '2i drink tea?'

    在第二行后增加行

    nl /etc/passwd | sed '2a drink tea?'

    以行为单位的替换与显示功能

    nl /etc/passwd | sed '2,5c No 2~5 number'

    nl /etc/passwd | sed -n '2,5p' 只显示2~5行

    部分数据的查找并替换的功能

    sed 's/要被替换的字符串/新的字符串/g',可以用空串替换用以删除

    例如: /sbin/ifconfig wlan0 | grep 'inet addr'| sed 's/^.*addr://g'| sed 's/Bc.*//g'    可以提取出来ip地址

    直接修改文件内容

    将regular_express.txt内每一行结尾为'.'的换成'!'

    sed -i 's/.$/!/g' regular_express.txt

  • 相关阅读:
    Linux下程序对拍_C++
    KMP算法_模板_C++
    [ CodeVS冲杯之路 ] P2952
    Netty入门(七)使用SSL/TLS加密Netty程序
    Netty入门(六)Decoder(解码器)
    Netty入门(五)ChanneHandler
    Netty入门(四)ByteBuf 字节级别的操作
    Netty入门(三)构成部分
    Netty入门(二)时间服务器及客户端
    Netty入门(一)环境搭建及使用
  • 原文地址:https://www.cnblogs.com/chengsheng/p/5658299.html
Copyright © 2011-2022 走看看