sed

用法:

sed  [选项]… ‘script’ inputfile

其中script是脚本基于sed语法的脚本                 inputfile文件内容

常用选项

-n   :不输出模式空间内容到屏幕,即不自动打印

-e   :多点编辑

-f    :   /PATH/SCRIPT_FILE:从指定文件中读取编辑脚本

-r    :支持扩展正则表达式

-i .bak :备份文件并原处编辑

把原文件做一个带.bak的备份文件        然后就不怕对原文件修改出错了

script   :  脚本包括两部分    1 地址     2 命令

‘地址命令’

      地址定界

1不给地址 :  对全文处理

2单地址

#:指定的行,   第#行      $:最后一行

/pattern/: 被此处模式所匹配的行          模式就是关键字 词 等

默认sed使用基本正则     /基本正则/

3地址范围:

#,#              从第#行 到 第#行

#, +#            从第n行 到 第n+m行

/pat1/,/pat2/            从匹配模式1的行  到  匹配模式2的行

#,/pat1/           从第#行   到   匹配模式1 的行结束

4~ :步进

1~2   奇数行

2~2    偶数行

   编辑命令

d:删除模式空间匹配的行,并立即启用下一轮循环

p :打印当前模式空间的内容,追加到默认输出之后

#sed    ‘2p’        文件                  会打印两遍第二行     如果只想打印第二行可以

#sed    -n    ’2p‘    文件

a [\]text :在指定行后面追加文本

支持使用\n实现多行追加

i [\]text : 在行前面插入文本

#sed    ‘2,5i\      ===’    f1

c [\] texr: 替换行为单行或多行文本

w  /path/somefile :保存模式匹配的行至指定文件

把符合条件的行存到文件里

r /path/somefile  :读取指定文件的文本至模式空间中匹配到的行后

=:为模式空间中的行打印行号   只显示行号

!:模式空间中匹配 行取反处理

   示例

sed    ‘2p’  /etc/passwd         显示第二行   但是会默认全打印所以有两个第二行

sed    -n   ‘2p’  /etc/passwd     与上一条相反   只显示第二行

sed    -n   ‘1,4p’  /etc/passwd         只打印第一行到第四行

sed    -n   ‘/root/p’  /etc/passwd       打印包含root的行

sed    -n   ‘2,/root/p’  /etc/passwd   从2行开始  到含有root的行

sed    -n   ‘/^$/=’  file     显示空行行号

sed  -n    -e    ‘/^$/p’   -e  ‘/^$/=’      file      空行显示行号并把行也打印出来

sed     ‘/root/a\superman’     /etc/passwd     行后     在包含root的行后 打印字符串superman

sed     ‘/root/i\superman’     /etc/passwd      行前                          行前

sed     ‘/root/c\superman’     /etc/passwd  代替行

sed     ‘/^$/d’       file          删除空行

sed   ‘1,10d’       file         删除1到10行

nl   /etc/passwd  |sed   ‘2,5d’         删除第2行到第5行

nl    /etc/passwd  | sed  ‘2a  tea’          在第2行后面追加单词   tea  或字符   tea

sed   ‘s/test/mytest/g’   example            搜索  test          替代  mytest

sed    -n   ‘s/root/&superman/p’   /etc/passwd  单词后     搜索 root  替代rootsuperman        &相当于 表示前面的root

sed     -n    ‘s/root/superman&/p’  /etc/passwd  单词前

sed     -e    ‘s/dog/cat/’         -e      ‘s/hi/lo/’      pets         多点替换

sed      -i.bak     ‘s/dog/cat/g’        pets           把文件改了

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95889

(0)
上一篇 2018-04-14 11:02
下一篇 2018-04-14 15:31

相关推荐

  • 马哥教育 – 第二周作业

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 <1>命令:CP 概念:用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。 语法…

    2018-05-21
  • 磁盘相关概念

    这场易碎的雨季 用节奏轻快的鼓点 在敲打过去

    2018-06-26
  • Linux文件管理命令,命令状态返回值及命令展开

    ls命令 功能: 列出目录下的所有文件和目录 语法格式: ls [OPTION]… [FILE]… 常用选项: -a :列出所有文件和目录 -A :列出除.和..的所有文件 -l :长选项,显示文件的详细属性信息 -rw——-. 1 root root 1.4K May 1 00:50 anaconda-ks.cfg -:文件类型 -:普通文…

    Linux笔记 2018-05-27
  • 虚拟化

    CPU虚拟化: 1、模拟:emulation; 2、虚拟:virtualization; a、完全虚拟化(full-virtualization):BT:二进制翻译(软件)、HVM:硬件辅助的虚拟化(硬件) b、半虚拟化(para-virtualization):   Memory虚拟化: 进程:线性地址空间 内核:物理地址空间 MMU   vir…

    2018-07-11
  • elk

    转载,供日后回查

    2018-07-31
  • 新建虚拟机+安装Centos7

    一、基本环境 笔记本电脑:widows 7 虚拟机版本:vmware workstation 12 镜像版本:CentOS-7-x86_64-Everything-1804 下载地址:mirrors.aliyun.com www.centos.org 一、新建虚拟机 1.创建虚拟机 2.选择“典型”,点击下一步。 3.选择“稍后安装系统”,点击下一步。 4….

    2018-07-22