客户端

一分钟sed入门(一分钟系列)

所在版块: 程序员 2016-02-16 15:50 [复制链接] 查看: 2739|回复: 0
                                                1.简介
sed是一种行编辑器,它一次处理一行内容。


2.sed调用方式
sed [options] command file(s)
sed [options] -f scriptfile file(s)
第一种直接在命令行中执行,第二种把命令写到了脚本中,二者无本质区别。
示例(1):打印hello.txt的内容
sed -n p hello.txt
说明:
-n:sed会在处理一行文本前,将待处理的文本打印出来,-n参数关闭了这个功能
p:命令表示打印当前行
hello.txt:待处理的文件
这个指令相当于cat


3.定址
告诉sed你期望处理的行,由逗号分隔的两个数字表示,$符号表示最后一行;
当然也可以使用正则来定位期望处理的行。
示例(2):打印hello.txt的第二行到最后一行
sed -n 2,$p hello.txt
示例(3):打印hello.txt中正则匹配100的行
sed -n /100/p hello.txt  


4.基本命令
hello.txt的内容为
1 2 3
10 20 30
100 200 300


命令:a\
在匹配行的后面加入一行文本
示例(4)匹配100的行,后面加入一行new line
sed /100/a\ new line hello.txt
输出内容为:
1 2 3
10 20 30
100 200 300
new line


命令:i\
在匹配行的前面加入一行文本
示例(5)匹配100的行,前面加入一行new line
sed /100/i\ new line hello.txt
输出内容为:
1 2 3
10 20 30
new line
100 200 300


命令:c\
将匹配行替换为目的行
示例(5)匹配100的行,替换为new line
sed /100/c\ new line hello.txt
输出内容为:
1 2 3
10 20 30
new line


命令:d
将匹配行删除
示例(5)删除匹配100的行
sed /100/d hello.txt
输出内容为:
1 2 3
10 20 30


命令:s
将匹配行替换
详细命令为:s/pattern-to-find/replacement-pattern/g
pattern-to-find:被替换的串
replacement-pattern:替换成这个串
g:全部替换,默认只替换匹配到的第一个
示例(5)讲100替换为hello
sed s/100/hello/g hello.txt  
输出内容为:
1 2 3
10 20 30
hello 200 300


5.元字符集
^:匹配一行的开始
$:匹配一行的结束
.:匹配某个字符
[abc]:匹配指定范围字符


6.实用命令
匹配以10开头的行,并替换为yes,并输出
sed -n s/^10/yes/p hello.txt
输出内容为:
yes 20 30
yes0 200 300


取出文件中行手的行号与冒号
设hello.txt的内容为
1:#!/bin/sh
2:cat hello.txt
3:exit


sed -n -e s/^[0-9]\{1,\}://gp hello.txt
输出结果为:
#!/bin/sh
cat hello.txt
exit
==【全文完】==
回【架构】58同城推荐系统架构设计与实现

回【twitter】twitter系统架构分析

回【12306】12306系统架构优化
回【youtube】YouTube系统架构

回【同城】58同城mysql实战
回【秒杀】秒杀系统架构优化思路
回【演进】好架构是进化来的,不是设计来的


回大于10的整数,返回随机好文(猜猜怎么实现的)
若有收获,随手帮转哟。
                    
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码关注微信公众号

QQ|Archiver|手机版|小黑屋|mwt-design ( 沪ICP备12041170号-1

GMT+8, 2024-11-25 14:09 , Processed in 0.068242 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回列表