Linux文本处理工具——Sed
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的更多相关文章
- Linux文本处理工具
Linux文本处理工具 Linux中熟练的使用文本处理工具非常的重要, 因为Linux在设计的时候是采用一切皆文件的哲学的, 甚至连计算机中的配置也都使用伪文件系统来表示, 要查询里面的内容就是对文件 ...
- Linux文本编译工具VIM详解
Linux文本编译工具VIM详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.VIM概述 1>.vim简介 >.vi: 全称Visual editor,即文本编辑 ...
- Shell 编程 文本处理工具 sed
本篇主要写一些shell脚本文本处理工具sed的使用. 概述 sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除.替换.添加 ...
- 文本处理工具sed
处理文本的工具sed 行编辑器 ,默认自带循环. sed是一种流编辑器,它一次处理一行内容. 功能:主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等 sed工具 用法: sed ...
- Linux 文本处理工具grep,sed,awk
grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更 ...
- Linux 文本三剑客之 sed
Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...
- linux 文本分析工具---awk命令(7/1)
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- linux文本处理工具篇
一.常用简单工具 cat [OPTION]... [FILE]... -E:显示行的结束符$ -n:对显示出的每一行进行编号. -A:显示所有控制符 -s:压缩连续空行为一行 more:分页查看文件 ...
- Linux文本查看工具
文本查看工具 cat 特点: 不能用来看二进制文件 选项: -A: 显示不可见字符 cat支持标准输入: cat > aa.txt ---键盘作为标准输入,输出的结果重定向文件中去了 cat & ...
随机推荐
- 毕业回馈-89c52之最小系统
今天分享一个51单片机最小系统的电路板设计(原理图+PCB) 技术手册上面对于51单片机最小系统作如下要求: 下载电路主要有以下几种: 采用RS-232转换器下载:(R1OUT-P3.0;T1IN-P ...
- 01_python2.x和python3.x中range()的区别
Py2.x 1) .range 和xrange都是经常使用的,特别是range()返回一个列表 2) .xrange()一般用来创建迭代对象 Py3.x xrange()不存在了,只有range()而 ...
- 微软职位内部推荐-Senior NLP Scientist
微软近期Open的职位: Job Title: Senior NLP Scientist Location: Suzhou, China Suzhou, one of the most vibrant ...
- 【Alpha】第七次Scrum meeting
今日任务一览: 姓名 今日完成任务 所耗时间 刘乾 今日没有做很多事...一天都在沟通细化需求与画电路图 2 鲁聃 生成物理报告实验页面的生成 Issue链接:https://github.com/b ...
- 作业五:分析system_call中断处理过程
分析system_call中断处理过程 一.MesuSO增加getpid和getpid-asm 二.使用GDB跟踪系统调用内核函数sys_getpid 分析system_call中断处理过程 使用gd ...
- HashMap相关总结
1.HashMap:根据键值hashCode值存储数据,大多数情况下可以直接定位到它的值,但是遍历顺序不确定.所有哈希值相同的值存储到同一个链表中 Ha ...
- VS社区版 使用 OpenCover 获取测试代码覆盖率
注:暂不支持VS2017 Visual Studio 2015 社区版没有集成代码覆盖率的功能,所以想在VS社区版中获取单元测试的代码覆盖率等数据,需要使用到插件 OpenCover. 下载 Open ...
- 基于Winform框架DataGridView控件的SqlServer数据库查询展示功能的实现
关键词:Winform.DataGridView.SqlServer 一个基于winform框架的C/S软件,主要实现对SqlServer数据库数据表的实时查询. 一.为DataGridView添加数 ...
- Caffe使用: Ubuntu 14.04(x64) 从cuda 7.0 升级到 cuda8.0
由于之前已经在Ubuntu 14.04 x64上面安装cuda7.0+caffe, 并且已经配置好,caffe也已经跑通. 但是最近需要使用Torch,而Torch对cuda的要求是8.0,因此决定对 ...
- clear & file input & reset & file input
clear & file input & reset & file input Clear <input type="file"> docume ...