linux之sed基础命令详解
sed (Stream EDitor)是一个强大的字符流编辑器,输入一般是来自文件,默认情况下不编辑原文件,仅对模式空间中的数据作处理;而后,将模式空间打印到屏幕显示
sed基础用法
sed [options]'AddressCommond' file ...
[options]
-n:静默模式,不再默认显示模式空间的内容
-i:直接修改原文件
-f:指定需执行的脚本文件,一般在脚本文件里编辑匹配模式
-e:SCRIPT -e SCRIPT :可以同时执行多个脚本
-r:表示使用拓展正则表达式
Address
1. startline,endline
1,100
2./RegExp/
/^root/
3./pattern1/,/pattern2/
表示第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,中间的所有行。
4.LineNumber
表示指定的行
$:表示最后一行 $-1:表示倒数第二行
5.Startline, +N
从Startline开始,向后的N行,共N+1行
Command:
d: 删除指定的行
sed '1,2d' /mnt/passwd
sed '4,$-1d' /mnt/passwd
sed '/nologin/d' /mnt/passwd
sed '1,+3d' /mnt/passwd
p:显示符合条件的行
sed '/^\//p' /mnt/passwd
a:\"string":在指定的行后面追加新行,内容为“string”
sed '2a\hello linux' /mnt/passwd
c:\'string' :用新文本替换指定行文本
sed '1c\redhat' /mnt/passwd
i:\string :在指定的行前面添加新行,内容为"string"
sed '2i\hello linux' /mnt/passwd
r:FILE:将指定的文件添加至符合条件的行处
sed '1,2r /etc/group' /mnt/passwd
sed '$r /mnt/tuantuan.sh' /mnt/yy.sh >> /mnt/kiosk.sh (合并文件)
w:将指定范围内的内容另存至指定的文件中
sed '/nologin/w /mnt/123' /mnt/passwd
s:查找并替换,默认只替换每行中第一次被匹配到的字符串
s/pattern/string/修饰符
sed 's/nologin/NOLOGIN/' /mnt/passwd
sed 's/^\//#/' /mnt/kiosk.sh
sed -r 's/^[[:space:]]+//' /mnt/passwd ##删除行首的空白符
sed 's/\(wer:\)[0-9]\(:gtrh\)/\17\2/g' /mnt/456 ##将wei:3:gtrh行中数字替换成7
sed 's/^#+//g' /mnt/yy.sh ##删除/mnt/yy.sh文件中开头的#号
sed -r 's/^#[[:space:]]+//g' ##删除开头的#号及后面的空白字符
sed -r 's/^[[:space:]]+#+//g' ##删除以空白字符后跟#号的空白字符及#号
g:全局变量
i:忽略字符大小写
sed 's/b..h/&r/g' /mnt/passwd
sed 's/\(b..h\)/\1r/g' /mnt/passwd
sed 's/b\(..h\)/B\1/g' /mnt/passwd
s/// 格式也可用 s###、s@@@
代替
linux之sed基础命令详解的更多相关文章
- Linux上的free命令详解、swap机制
Linux上的free命令详解 解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free ...
- Linux CAT与ECHO命令详解 <<EOF EOF
Linux CAT与ECHO命令详解 cat命令是Linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: .一次显示整个文件. $ cat filename .从键盘 ...
- [r]Ubuntu Linux系统下apt-get命令详解
Ubuntu Linux系统下apt-get命令详解(via|via) 常用的APT命令参数: apt-cache search package 搜索包 apt-cache show package ...
- Linux CAT与ECHO命令详解
Linux CAT与ECHO命令详解 cat命令是Linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: 1.一次显示整个文件. $ cat filename 2.从 ...
- (转)Linux: dirname、basename命令详解
Linux: dirname.basename命令详解 原文:http://blog.sina.com.cn/s/blog_3f63916f010143vo.html 一.dirname指令 1.功能 ...
- Linux服务管理 systemctl命令详解
Linux服务器,服务管理--systemctl命令详解,设置开机自启动 syetemclt就是service和chkconfig这两个命令的整合 任务 旧指令 新指令 使某服务自动启动 ch ...
- centos、linux关机与重启命令详解
Linux centos关机与重启命令详解与实战 Linux centos重启命令: 1.reboot 2.shutdown -r now 立刻重启(root用户使用) 3.shutdown -r 1 ...
- Linux下面的yum命令详解
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...
- Linux 文本对比 diff 命令详解(整理)
diff 命令详解 1.概述 windows系统下面就有不错的文本对比工具可以使用,例如常用的Beyond Compare,WinMerge都是图形界面的比较工具而且使用非常方便,如果你仅仅是在win ...
随机推荐
- 《SQL必知必会》总结
目录 第1章 了解SQL 第2章 检索数据 第3章 排序检索数据 第4章 过滤数据 第5章 高级数据过滤 第6章 用通配符进行过滤 第7章 创建计算字段 第8章 使用数据处理函数 第9章 汇总数据 ...
- Alpha Scrum1
Alpha Scrum1 牛肉面不要牛肉不要面 Alpha项目冲刺(团队作业5) 各个成员在 Alpha 阶段认领的任务 林志松:音乐网页前端页面编写,博客发布 吴沂章:博客编写 林锃寒:前端页面编写 ...
- 智能机器人“小昆”的实现(五)MainActivty的实现及项目结束
好了,一切准备工作都完成了,下面我们就可以真正的编写MainActivity了.在MainActivity中,我们要为ListView设定适配器,并为发送按钮设定点击事件.我们的逻辑就是点击发送按钮, ...
- 小知识积累-C++使用tinyxml解析Xml内存泄漏问题
项目中需要用到C++解析XML,网上搜到tinyxml这么个开源库,就用了下试试,创建对象后内部自带Clear方法,但在循环测试的时候(刚用C++做项目不久,不会什么特别的内存泄漏测试工具,于是就写个 ...
- 决策树在sklearn中的实现
1 概述 1.1 决策树是如何工作的 1.2 构建决策树 1.2.1 ID3算法构建决策树 1.2.2 简单实例 1.2.3 ID3的局限性 1.3 C4.5算法 & CART算法 1.3.1 ...
- 配置开发环境&安装sklearn
我的开发环境是Jupyter lab,所用的库和版本大家参考: Python 3.7.1(你的版本至少要3.4以上) Scikit-learn 0.20.0 (你的版本至少要0.19) Graphvi ...
- angular.js和ionic框架搭建一个webApp
原文地址:http://www.jianshu.com/p/ea0dcf1d31c9
- 关于iOS 3D touch 指纹验证的随笔
file:///Users/OWen/Desktop/3DTouch.png 随着iOS系统不断的更新迭代,苹果总会推出一些新的功能,今天就研究了一下iOS8之后推出的指纹验证的功能,然后写了一个小d ...
- VS2008 工具栏CMFCToolBar的使用总结(转)
(一)自定义工具栏 自定义工具栏,分两种情况:一是直接添加工具栏,并自己绘制图标:二是,添加工具栏,然后与BMP关联,与VC6.0中的自定义彩色工具栏类似. 1. 自绘工具栏 1)添加Toolbar ...
- 解决pycharm无法导入本地包的问题
在用python写爬虫程序时,import 行无法通过,具体情况如下: pycharm运行程序后,程序pass了,但是出现了警告,如下图所示: 这是由于该程序不在根目录下,无法导入本地包,解决办法如下 ...