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 & ...
随机推荐
- 面向对象第一次练手-------ArrayList集合、类、对象、冒泡排序、类型转换
思维转不过弯儿来 怎么做都是错 哪怕差一个()就成功的事情,也是千差万别 忽然想到一句话:差一步就成功的距离 = 差几万米就成功的距离 部分的理解和都体现在代码和注释里 using S ...
- 账户控制器(AccountController)
账户控制器(AccountController) Account控制器提供了登录,注册,忘了密码和电子邮件激活页面功能. Layout模板视图 在Account视图文件夹中单独建设了模板文件: 登录页 ...
- Inno Setup脚本
某天夜晚一场狂风暴雨,由于办公室座位旁的窗户没关,笔记本电脑泡了一夜水,无法开机,无奈送修,里面的大量资料也不知道会不会丢失. is的脚本只有重新写了,重新研究了一下检测程序是否正在运行的判断方法,另 ...
- H5游戏接微信小游戏的支付,满满的都是坑!
h5小游戏接微信的支付,简直是在为难我胖虎,说多了都是泪. 准备工作: 准备工作一定要做好,不然很容易出错.首先是session_key这个字段,这个session_key是登录的时候需要用到的,根据 ...
- 区块链扩容方案之Gas值限制
区块链扩容一直是区块链团队的重点研究方向.因为比特币对区块大小的设定是固定的,而且中本聪将最初大小值限定为1M,但随着交易量的增加,网络拥堵情况也愈渐严重,最终也导致了比特币的分叉. 区别于比特币固定 ...
- python3【基础】-赋值与深浅拷贝
一.Python的变量及其存储 在高级语言中,变量是对内存及其地址的抽象.对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址, ...
- PAT甲题题解-1126. Eulerian Path (25)-欧拉回路+并查集判断图的连通性
题目已经告诉如何判断欧拉回路了,剩下的有一点要注意,可能图本身并不连通. 所以这里用并查集来判断图的联通性. #include <iostream> #include <cstdio ...
- .net中操作Visual SourceSafe
最近整理一些资料,发现以前写的一段代码,提供对微软的版本管理软件visual sourcesafe的一些操作.以下简称vss. 想起以前写的时候,因为资料比较匮乏,只能边研究边测试,走了不少弯路. 由 ...
- 关于 error C2039: “create”: 不是“cocos2d::GLView”的成员的解决方法
问题: 跑一个demo,因为是涉及3.x版本的引擎,不是很熟悉,在VS2013上运行,报错 error C2039: “create”: 不是“cocos2d::GLView”的成员 解决: 通过查阅 ...
- Alpha 冲刺二
团队成员 051601135 岳冠宇 051604103 陈思孝 031602629 刘意晗 031602248 郑智文 031602234 王淇 会议照片 项目燃尽图 项目进展 暂无进展, 项目描述 ...