`
不爱不见
  • 浏览: 275044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Sed命令的使用总结

阅读更多
1>.sed删除行首的空格或tab字符。
sed 's/^[ \t]*//g' file

sed 's/^ *//g' file
2>.sed输出字符串:
打印第三行(3表示等号,p表示打印)

sed -n '3p' /etc/passwd
打印2至5行

sed -n '2,5p' /etc/passwd
从第2行开始,每隔3行打印一行

sed -n '2~3p' /etc/passwd
打印最后一行

sed -n '$p' /etc/passwd
打印包含或不包含root的行

sed -n '/root/p' /etc/passwd
sed -n '/root/! p' /etc/passwd
打印包含/bin/bash的行(%regexp%可以不用转义斜杠)

sed -n '\%/bin/bash%p' /etc/passwd
忽略大小写的搜索

sed -n '\%/BIN/bash%Ip' /etc/passwd或sed -n '/\/BIN\/bash/Ip' /etc/passwd
搜索从开始到sshd字符的范围

sed -n '0,/sshd/p' /etc/passwd
3>sed正则表达式的介绍:
char
只匹配本身char
*
匹配之前字符的0个或更多
+
与*相比,只是匹配1个或更多
?
匹配前面字符的0个或1个
{i}
匹配前面字符的i个,i是整数
{i,j}
匹配前面字符的i至j个,包含i和j
{i,}
匹配前面字符的i个或i个以上
(regexp)
分组字符,两个作用1、(abcd)*会搜索0个或多个abcd字符,abcd是作为一个整体2、作为反向引用,可以使用1 2等引用。
.
匹配任何字符,包括换行符
^
匹配行的开始
$
匹配行的结束
[list]
匹配list中的任单字符,如l,i,s,t
[^list]
反向匹配l,i,s,t
regexp1|regexp2
匹配regexp1或者regexp2
regexp1regexp2
匹配regexp1与regexp2连接
n
匹配换行字符
char
匹配特殊字符,如$, *, ., [, , ,^

4>sed参数详解:
-e<script>或—expression=<script>   以选项中指定的script来处理输入的文本文件。
-f<script文件>或—file=<script文件>   以选项中指定的script文件来处理输入的文本文件。
-h或—help 显示帮助。
-n或—quiet或--silent 仅显示script处理后的结果。
-V或—version 显示版本信息。

5>sed常用命令:
q
退出命令,sed '11 q' /etc/passwd 相当于head /etc/passwd
d
删除命令,sed '1 d' /etc/passwd 删除第一行
p
打印命令,一般与-n选项连用

6>替换命令s:
命令的格式为:s/regexp/replacement/flags
把root替换成rooter
sed 's/root/rooter/' /etc/passwd

replacement可以是n(n为1到9的数字),表示引用regexp里的(matching):如
echo "123abc" | sed 's/([0-9]*).*/1/’
([0-9]*).*匹配了123abc,而([0-9]*)匹配123,所以1内容为123,所以这个例子的结果为123。

flags的可选值如下:
g
将replacement应用于所有reqexp所匹配的,不仅仅是第一个的匹配。
number
只替换第n个的匹配
p
当替换已经完成,打印新的结果
w file-name
当替换完成,把新结果保存到文件
I
i
忽略大小写。
7>不常用的几个命令:
y/source-chars/dest-chars/
source-chars与dest-chars长度要相同,转换是一一对应的,如a转换成A,b转换成B:sed ‘y/ab/AB/’

a
text
在指定位置增加内容,如在含有root下一行增加I am root:
sed ‘/root/ aI am root’ /etc/passwd

i
text
在指定位置插入内容,如在含有root上一行增加I am root:
sed ‘/root/ iI am root’ /etc/passwd

c
text
用text替换匹配的行,如把含有root的行内容替换为I am root:
sed ‘/root/ cI am root’ /etc/passwd
=
打印行号,如显示含有root所在的行号:sed -n ‘/root/=’ /etc/passwd

l n
以n个长度分割匹配到的行,并以结尾,如以长度为4个字符分隔含有root的行:sed ‘/root/ l 4′ /etc/passwd

r filename
读取文件到输出,如在含有root的行下面插入file文件:sed ‘/root/r file’ /etc/passwd

w filename
保存输出流到文件,如保存含有root的行到file文件:sed ‘/root/w file’ /etc/passwd

N
增加一行并附下一行内容,如两行合并成一行:sed ‘N;s/n//’ /etc/passwd
7>选择性的显示行:
# 显示文件中的前10行 (模拟“head”的行为)

1.sed 10q /etc/passwd
# 显示文件中的第一行 (模拟“head -1”命令)

1.sed q
# 只显示匹配正则表达式的行(模拟“grep”)

1.sed -n '/regexp/p'               # 方法1
2. sed '/regexp/!d'                 # 方法2
# 显示包含“AAA”、“BBB”或“CCC”的行(任意次序)

1.sed '/AAA/!d; /BBB/!d; /CCC/!d'  # 字串的次序不影响结果
# 显示包含65个或以上字符的行

1.sed -n '/^.\{65\}/p'
# 显示包含65个以下字符的行
1.sed -n '/^.\{65\}/!p'            # 方法1,与上面的脚本相对应
2. sed '/^.\{65\}/d'                # 方法2,更简便一点的方法
# 从第3行开始,每7行显示一次

1.sed -n '3~7p'                   # 只对GNU sed有效
2. sed -n '3,${p;n;n;n;n;n;n;}'     # 其他sed



5>插入一行:
插入一行
14. sed ‘3 i/haha‘ a.txt 在第三行的位置插入一行haha
添加一行
15. sed ‘3 a/haha‘ a.txt 在第三行后的位置插入一行haha
替换整行
16. sed ‘3 c/haha‘ a.txt 将第三行整行替换为haha
0
0
分享到:
评论

相关推荐

    sed命令总结.pdf

    简要介绍sed命令

    sed 命令的学习 文档内容简单易懂

    本人总结出来的,有关sed 脚本的学习,很适合初学者,每条命令都运行过

    掌握Sed命令

    血蝙蝠小组精心总结整理的系列学习资料之一,正文总共10页左右,基本涵盖了sed实际使用中常用的内容,希望对初学者有所帮助

    Linux三剑客之【sed】.pdf

    Linux三剑客之sed命令:自己在平时的使用过程中总结积累的sed命令的若干种常用用法,特分享出来。 参数: -i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文件名 s 表示替换,d 表示删除...

    shell&awk;&sed;

    shell&awk;&sed;常用命令语法总结

    常用linux命令小结

    因为不耐烦反复的查,索性自己总结了一个pdf,里面包括常用的linux命令,包括gcc,grep,tar,sed,find,screen,nohup,scp等,另外还有一些常用的文本处理命令如cat,split,head,tail,uniq,wc,more,less等。

    LINUX and SHELL 自学总结

    五、SHELL其它命令总结 7 1. #AWK命令用法 7 2. 搜索文件夹或文件命令 7 3. RPM解包和TAR解包 7 #rpm 强制安装 7 4. 统计某字符串数量 7 5. #DD命令使用总结 8 6. #REV 字符串反向命令 8 7. 变量截取 8 8. #UNIQ ...

    linux三剑客常用命令.pdf

    inux中的文本处理工具,grep、sed、awk,也称之为三剑客,熟练的使用,对文本内容搜索、编辑等任务能够提升效率。grep/egrep/fgrep:文本过滤工具;sed:流编辑器;awk:文本报告生成器 ,格式化文本,3个开发者的名字...

    java开发工具(10)查日志,你还在用vim,grep,sed么?告诉你真正好用的less命令

    我想现在许多人查日志,刚开始的时候,都是直接使用grep命令,后面又接触了vim,sed等命令,这些命令都是查看日志的利器,但是其中也有部分缺陷,怎么样用正确的姿势去又快又好地查看问题,这里我将为你介绍less命令...

    Linux基础命令与根目录一览表-思维导图.pdf

    常用的 Linux 基础命令的总结: 文件和目录操作命令: ls:列出目录内容。 cd:切换工作目录。 pwd:显示当前工作目录的路径。 mkdir:创建新目录。 touch:创建空文件或更新文件的访问和修改时间。 rm:删除文件...

    Linux学习笔记【博文整理系列】

    学习linux的笔记,发到博文了,鉴于文档方便保存和查阅,发出来,免费的哈 ...文档列表: Linux笔记——vim常用操作及扩展补充[手册] ...Linux笔记——SVN命令总结 rpm&yum包管理命令总结 The end wklken

    vi技巧大全命令大全

    UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充! 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一...

    linux下Vi编辑器命令大全

    linux下Vi编辑器命令大全 文本编辑器是所有计算机系统中最常用的一...UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充!

    Unix vi命令大全

    文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充!

    grep 总结

    NULL 博文链接:https://javatophp.iteye.com/blog/1044052

    VIM常用命令集锦

    vi 是visual edit 的缩写 文本编辑器是所有计算机系统中最常用的一...UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充!

    vi常用命令

    文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充!

    linux 三剑客命令

    总结awk/sed/grep相当详细,工具类文件

    2015运维面试问题总结.docx

    2016运维面试问题总结 基础操作:面试和笔试的时候肯定会问到,频率最高的命令有:mkdir find awk sed uniq sort tail head mkfs chmod crontab lsof netstat route tcpdump tar等 主要考察为后面参数的选择以及格式

Global site tag (gtag.js) - Google Analytics