sed:数据流编辑器; awk:报告文本的生成器

sed 基本用法:(Stream EDitor) Stream 流 EDitor 编辑器
行编辑器
全屏编辑器:vi/vim
sed:内存空间(模式空间)
默认不编辑源文件,仅对模式空间中的数据作处理,处理结束后,将模式空间打印到屏幕

sed [options] 'AddressCommannd' file ...
-n: 静默模式,不再默认显示模式空间中的内容
-i: 直接修改源文件
-e SCRIPT -e SCRIPT:可以同时执行多个脚本
-f file: sed -f file filetest.txt 脚本文件处理源文件
-r: 表示使用扩展正则表达式
history | sed 's/^[[:space:]]*//g' | cut -d' ' -f1

Address:
1. StartLine,EndLine e.g: 1,100
2. /RegExp/ 正则表达式 e.g:/^root/
3. /Pattern1/,/Pattern2/ Pattern 模式
第一次被Pattern1匹配到的行开始,到第一次被Pattern2匹配到的行结束,这中间的所有行
4. LineNumber;指定行
$:倒数第一行
$-1:倒数第二行
5. StartLine,+N 从指定行开始向后N行

Command:
d:删除符合条件的行 e.g: sed '1,2d' /etc/fstab
sed '/oot/d' /etc/fstab
sed '1,+2d' /etc/fstab
p:显示符合条件的行 e.g: sed -n '/^\//p' /etc/fstab
a \string:在指定的行后面追加新行,内容为string e.g: sed '/^\//a \#Hello World!' /etc/fstab
i \string:在指定的行前面添加新行,内容为string e.g: sed '/^\//i \#Oh,my god!' /etc/fstab
r FILE:将指定的文件内容添加到符合条件的行处 e.g: sed '2r /etc/issue' /etc/fstab
w FILE:将地址指定的范围内的行另存至指定的文件中 e.g: sed '/oot/w /tmp/oot.txt' /etc/fstab
s/Pattern/String/:查找并替换,默认只替换每行中第
一次被匹配到的字符串加修饰符 e.g: sed 's/oot/OOT/' /etc/fstab
g:全局替换 e.g: sed 's/oot/OOT/g' /etc/fstab
i:忽略字符大小写
s///:s###:s@@@ e.g: sed 's@/@#@g' /etc/fstab
&:引用模式匹配到的整个串 e.g: sed 's#..t#&er#g' /etc/fstab
e.g: sed 's#\(.\)oo\(.\)#\1OO\2#g' /etc/fstab
练习:
1、删除/etc/grub.conf文件中行首的空白字符;
sed -r 's/^[[:space:]]*//g' /etc/grub.conf

2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字5;
sed 's/\(id:\)[0-9]\(:initdefault:\)/\15\2/g' /etc/inittab

3、删除/etc/inittab文件中的空白行;
sed '/^$/d' /etc/inittab

4、删除/etc/inittab文件中开头的#号;
sed 's/^#//g' /etc/inittab

5、删除某文件中开头的#号,但要求#号后面必须有空白字符;
sed -r 's/^#[[:space:]]*//g' /etc/inittab

6、删除某文件中以空白字符后跟#号开头的开头的空白字符及#号
sed -r 's/^[[:space:]]*#//g' /etc/inittab

7、取出一个文件路径的目录名称
echo "/etc/rc.d" | sed -r 's@^(/.*/)[^/]+/?@\1@g'

Linux文本处理工具——Sed的更多相关文章

  1. Linux文本处理工具

    Linux文本处理工具 Linux中熟练的使用文本处理工具非常的重要, 因为Linux在设计的时候是采用一切皆文件的哲学的, 甚至连计算机中的配置也都使用伪文件系统来表示, 要查询里面的内容就是对文件 ...

  2. Linux文本编译工具VIM详解

    Linux文本编译工具VIM详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.VIM概述 1>.vim简介 >.vi: 全称Visual editor,即文本编辑 ...

  3. Shell 编程 文本处理工具 sed

    本篇主要写一些shell脚本文本处理工具sed的使用. 概述 sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除.替换.添加 ...

  4. 文本处理工具sed

    处理文本的工具sed  行编辑器 ,默认自带循环. sed是一种流编辑器,它一次处理一行内容. 功能:主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等 sed工具 用法: sed ...

  5. Linux 文本处理工具grep,sed,awk

    grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更 ...

  6. Linux 文本三剑客之 sed

    Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...

  7. linux 文本分析工具---awk命令(7/1)

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  8. linux文本处理工具篇

    一.常用简单工具 cat [OPTION]... [FILE]...  -E:显示行的结束符$ -n:对显示出的每一行进行编号. -A:显示所有控制符 -s:压缩连续空行为一行 more:分页查看文件 ...

  9. Linux文本查看工具

    文本查看工具 cat 特点: 不能用来看二进制文件 选项: -A: 显示不可见字符 cat支持标准输入: cat > aa.txt ---键盘作为标准输入,输出的结果重定向文件中去了 cat & ...

随机推荐

  1. sql优化详细介绍学习笔记

    因为最近在面试,发现sql优化这个方面问的特别特别的多.之前都是零零星星,不够全面的了解一点,刚刚在网上查了一下,从 http://blog.csdn.net/zhushuai1221/article ...

  2. 《Effective Java》学习笔记 —— 枚举、注解与方法

    Java的枚举.注解与方法... 第30条 用枚举代替int常量 第31条 用实例域代替序数 可以考虑定义一个final int 代替枚举中的 ordinal() 方法. 第32条 用EnumSet代 ...

  3. MFC学习笔记(一): 不用MFC向导如何新建一个MFC程序

    使用Visual Studio新建一个空项目,项目命名为HelloMFC,完成后,打开项目属性页面,将配置属性选项卡中的常规项打开,将其中的MFC的使用属性栏改为:在静态库中使用MFC或者在共享DLL ...

  4. GitHub 新手教程 三,Git Bash

    1,通过 开始菜单 启动 Git Bash,或者 在 cmd 下执行以下命令: D:\SoftWare\Git\git-bash.exe --cd-to-home (D:\SoftWare\Git 是 ...

  5. Hexo初体验

    title: Hexo初体验 date: 2018-05-10 tags: Hexo categories: Hexo --- Hexo本地安装 Node.js安装 Hexo npm安装如下 npm ...

  6. simhash-- 一种文档去重的算法

    最早看数学之美的时候,书中就提到了这个算法,当时没有做过相关地工作,没什么具体的印象.一年前转岗时面试时别人提到了这个算法,知道了simhash可以用来解决网页等海量数据的去重问题,很高效. 然后自己 ...

  7. c# WndProc事件 消息类型

    转载:https://www.cnblogs.com/idben/p/3783997.html WM_NULL = 0x0000; WM_CREATE = 0x0001;应用程序创建一个窗口 WM_D ...

  8. 基于SSH框架的学生选课质量属性分析

    系统:学生选课系统 框架:SSH(Struts2+Spring+Hibernate) 我做的是基于SSH框架的学生选课系统.学生选课系统的特性:①系统响应时间短,能够快速调出课程数据供学生选课提交.② ...

  9. 04-java学习-选择结构

    if if else 多重if switch

  10. thinkphp5报错

    thinkPHP5配置nginx环境无法打开(require():open_basedirrestrictionineffect.File(/mnt/hgfs/ro (2018-07-19 22:05 ...