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

  • 相关阅读:
    ThinkPHP之APP_DEBUG给我带来的问题
    yii框架部署
    论文翻译之--- 软件设计师怎样使用标记来帮助提醒和重新查找
    初始html5,遇到的第一个问题
    几种进入mysql的方法
    百度经验---一些生活常见问题的解决
    myeclipse背景色设置遇到的问题
    linux学习(二)-----Linux 的目录结构、远程登录、vi和vim
    linux学习(一)-----vm、centos安装
    springboot核心技术(四)-----Docker、数据访问、自定义starter
  • 原文地址:https://www.cnblogs.com/chengsheng/p/5658299.html
Copyright © 2011-2022 走看看