塞尔达传说 sed( 二 )


l i n e
3
what is this
4
[ fuwh@localhost 17:05 ~/stu ] $
选项-e的用法
[ fuwh@localhost 16:26 ~/stu ] $ cat test | sed -ne '2,/is/p' -e '2,/is/='
second line
2
l i n e
3
what is this
4
[ fuwh@localhost 16:27 ~/stu ] $
选项-f的用法
首先建立一个sed的脚本文件,内容如下,并赋予可执行的权限 。
[ fuwh@localhost 16:45 ~/stu ] $ cat append.sed
#!/bin/sed -f
/this/a\
this is the firstappend line\
this is the secondappend line
[ fuwh@localhost 16:45 ~/stu ] $ cat test
first line
second line
l i n e
what is this
[ fuwh@localhost 16:47 ~/stu ] $ which sed
/bin/sed
[ fuwh@localhost 16:47 ~/stu ] $ ll
总用量8
-rw-rw-r--. 1 fuwh
fuwh 84 8月11 16:45 append.sed
-rw-rw-r--. 1 fuwh
fuwh 44 8月11 15:10 test
[ fuwh@localhost 16:47 ~/stu ] $ chmod u+x append.sed
[ fuwh@localhost 16:48 ~/stu ] $ ll
总用量8
-rwxrw-r--. 1 fuwh
fuwh 84 8月11 16:45 append.sed
-rw-rw-r--. 1 fuwh
fuwh 44 8月11 15:10 test
[ fuwh@localhost 16:52 ~/stu ] $ ./append.sed test
first line
second line
l i n e
what is this
this is the firstappend line
this is the secondappend line
[ fuwh@localhost 16:53 ~/stu ] $
替换命令s
替换命令,将匹配的文本替换成新的文本 。命令格式如下:
s/被替换的字符串/新字符串/[替换选项]
替换选项和意思:
g:表示替换文本中所有出现的
p:与-n结合,只打印替换行
w 文件名:表示将输出重定向到一个文件
[ fuwh@localhost 17:33 ~/stu ] $ sed 's/line/row/g' test
first row
second row
l i n e
what is this
[ fuwh@localhost 17:35 ~/stu ] $
sed基本用法sed,以行为单位进行处理,可以直接将文件的内容进行增删改查等操作
格式:sed[选项]参数文件
-r支持正则表达式
-i直接修改文件内容
-n只打印匹配的行
a在当前行下面插入内容
i在当前行上面插入内容(直接修改,原文件也会修改)
c把选定行改为新的文本(替换所在那行)
p打印行(一般与-n一起使用,屏蔽默认输出,否则会出现两行内容)
s替换指定字符
第一部分:
sed -n '3,6p' passwd#打印3-6行
sed -i 'd' passwd#删除所有内容行
sed -i '1,4d' passwd#删除1-4行
sed -n '1p;4p' passwd#打印第1和第4行
sed -n '3,+10p' passwd#打印第3行以及后面10行
sed -n '1~2p' passwd#打印奇数行
sed -n '2~2p' passwd#打印偶数行
sed -n '/root/p' passwd#打印包含root的行
sed -n '/bash$/p' passwd#打印bash结尾的行
sed-n '/^root/p'passwd#输出以root开头的行
sed -n '$=' passwd#输出文件总行数
sed -n '2,6d' passwd#删除2-6行
sed '/xml/d' passwd#删除所有包含xml的行
sed '/xml/!d' passwd#删除所有不包含xml的行,!取反
sed'$d'passwd#删除最后一行
sed'/^install/d'passwd#删除install开头的行
sed'/^$/d'passwd#删除所以空行
第二部分:
sed 's/ww/web/' test.txt#每行中第一个ww改成web
sed 's/ww/web/g' test.txt#将所有的ww改成web
sed 's/ww/web/3' test.txt#每行中第三个ww改成web
sed 's/xml//g' test.txt#将所有的xml都删除(换成空)
sed 's#/bin/bash#/sbin/sh#g' passwd#包含/的替换,可以把格式换成#
sed '1,7s/^/#/'passwd#第1~7行注释掉
sed 's/^#//g'passwd#将所有注释去掉
sed的用法sed命令行格式:sed [options] 'command' file(s)
options常用选项:
-n或--quiet或——silent:仅显示script处理后的结果;
-e:以选项中的指定的script来处理输入的文本文件;
-f:以选项中指定的script文件来处理输入的文本文件;
-r∶sed 的动作支援的是延伸型正规表示法的语法;
-i∶直接修改读取的档案内容,而不是由萤幕输出;
-h或--help:显示帮助;
-V或--version:显示版本信息 。
Command常用命令:
a:新增,a 的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行);
c:取代,c 的后面可以接字符串,这些字符串可以取代 n1.n2 之间的行;
d:删除,d 后面通常不接任何字符串;
i:插入,i 的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行);
p:列印,亦即将某个选择的资料印出 。通常 p 会与参数 sed -n 一起运作;
s:取代,可以直接进行取代的工作,通常与正规表达式搭配使用 。
实例说明:

秒懂生活扩展阅读