Sed命令学习
1.Sed简介
流数据编辑器 Stream editer(sed),它是一种行编辑器(对应于全屏编辑器),一次处理一行的内容。默认不编辑原文件内容(-i会直接修改原文件)。处理时,它先将当前符合模式的行存储在临时缓冲区内,处理完之后,把缓冲区的内容送往屏幕打印出来.
2.命令格式
sed [option] 'AddressCommand' file....
Address
起始行,结束行; 1,50 sed '1,10d' /etc/fstab
起始行,+N行; sed '1,+3d' /etc/fstab
/正则表达式/ ; /^root/ sed '/UUID/d' /etc/fstab
/模式1/,/模式2/;第一次被模式1匹配到的行到第二次被模式2匹配到的所有行
行号;指定要处理的行,$表示最后一行 sed '$d' /etc/fstab
Command
d;删除符合条件的行
p;显示符合条件的行 sed '^UUID/p' /etc/fstab
a \String; 在符合条件的行后追加String新行 sed '^UUID/a \#comment' /etc/fstab
i \String;在符合条件的行前添加String新行
r FILENAME;将指定的文件的内容添加至符合条件的行后(合并文件) sed '$r /etc/passwd' /etc/fstab
w FILENAME;将符合条件范围内的内容另存到指定的文件中 sed '/^UUID/w /tmp/333.txt' /etc/fstab
s /模式/String/;查找每行中第一次符合条件的内容并替换成String,分割符可以用#,@等,%s表示全文搜索
sed 's/^UUID/uuid/' /etc/fstab sed 's/-/#/' /etc/fstab
修饰符 g全局替换,i忽略大小写 sed 's/-/#/g' /etc/fstab
option
常见的一些选项
-n 静默模式
-i 直接修改源文件
-e addresscommand -e addresscommand 同时执行多个命令
-f /scriptfile 用脚本文件对文件进行处理
-r 使用扩展正则表达式
3. 例子
1.删除history行首的所有空格 history | sed 's/^[[:space:]]*//g'
2.通过脚本添加参数中的用户,参数中的用户用逗号分隔
addusersh user1,user2,user3
#!/bin/bash
for l in `echo $1 | sed 's/,/ /g'`;do
if id $l &> /dev/null;then
echo "$l exists"
else
useradd $l
echo $l | passwd --stdin $l &> /dev/null
echo "$l added"
fi
done
Sed命令学习的更多相关文章
- linux sed命令学习
. Sed简介 . 定址 . Sed命令 . 选项 . 元字符集 . 实例 . 脚本 . 小技巧 . Sed简介 sed是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中, ...
- 每日linux命令学习-sed
Linux的文本处理实用工具主要由sed和awk命令,二者虽然略有差异,但都使用正则表达式,默认使用标准I/O,并且使用管道命令可以将前一个命令的输出作为下一个命令的输入.笔者将在本节学习sed命令. ...
- Linux命令学习-sed
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed ...
- Shell学习:sed命令
http://blog.sina.com.cn/s/blog_a56ef5490101cn58.html sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行 ...
- Linux命令学习计划【sed】
引言: Sed命令是linux里用于文本行处理的命令. 为了便于说明,我在/usr/dict下创建了字典words并以此作为演示模板 先用nl 打印下words内容: *打印篇: Q1:如何打印某一行 ...
- Linux学习之sed命令详解
概述 sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区 ...
- Linux学习sed命令
sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送 ...
- linux命令学习之:sed
sed:Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器.能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上 ...
- sed命令教程
转载自:http://coolshell.cn/articles/9104.htmlawk于1977年出生,今年36岁本命年,sed比awk大2-3岁,awk就像林妹妹,sed就是宝玉哥哥了.所以 林 ...
随机推荐
- JQuery+Js 获取浏览器高度和宽度
JQuery-------做手机Web开发做浏览器兼容用到了,所以在网上找了些汇总下. alert($(window).height()); //浏览器当前窗口可视区域高度 alert($(docum ...
- ASP.NET MVC下的异步Action的定义和执行原理
一.基于线程池的请求处理ASP.NET通过线程池的机制处理并发的HTTP请求.一个Web应用内部维护着一个线程池,当探测到抵达的针对本应用的请求时,会从池中获取一个空闲的线程来处理该请求.当处理完毕, ...
- The initialize list of C++ Class
性能问题之外,有些时场合初始化列表是不可或缺的,以下几种情况时必须使用初始化列表 常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面 Error1(constchar* constmsg ...
- HTML5最佳实践
首先先给大家推荐个不错的 前端 网站:http://www.tystudio.net HTML5正迅速称为web前端开发技术标准,作为一名前段开发人员,了解并正确的使用HTML5制作网站变得越来越重要 ...
- arm linux上的第一个应用程序 BOA移植
1. 首先, linux在开发板上能跑起来了. 包括网络驱动也有了, ifconfig之后, 能看到在rcS里面设置的IP, 也能ping通windows主机了, 当然, 也要window关掉防火墙才 ...
- js 比较日期大小
//1获取当前时间 var curTime = new Date(); //2把字符串格式转换为日期类 var startTime = new Date(Date.parse(kc.begintime ...
- Activity之间切换使用系统内置动画
例如: startActivity(intent); overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out) ...
- MYSQL如何导出存储过程和触发器?
今天遇到.. 类似下面的就可以: mysqldump -u root -p -ntd -R nxsc>nxsc_trigger.sql
- 2015第24周四Spring事务4
Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource.TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分. Da ...
- linux c 之signal 和sigaction区别
http://blog.csdn.net/muge0913/article/details/7331129 要对一个信号进行处理,就需要给出此信号发生时系统所调用的处理函数.可以对一个特定的信号(除去 ...