-
f
:直½
½
sed
的
动
作
写
在一
个
文件
内
,
-
f filename
则
可以
执
行
filename
内
的
sed
动
作;
-
r
:
sed
的
动
作支持的是延伸型正
规
表示法的
语
法。
(
预设
是基
础
正
规
表示法
语
法
)
-
i
:直½修改
读
取的
文件
内
容,而不是由屏幕
输
出。
动
作
说
明:
[n1[,n2]]function
n1, n2
:不
见
得
会
存在,一般代表『
选择½
行
动
作的行
数
』,
举
例
来说
,如果我的
动
作
是需要在
10
到
20
行之
间½
行的,
则
『
10,20[
动
作行
为
]
』
function
有底下
这
些咚咚:
a
:新增,
a
的后面可以½字符串,而
这
些字符串
会
在新的一行出
现
(
目前的下一行
)
~
c
:取代,
c
的后面可以½字符串,
这
些字符串可以取代
n1,n2
之
间
的行!
d
:
删
除,因
为
是
删
除啊,所以
d
后面通常不½任何咚咚;
i
:插入,
i
的后面可以½字符串,而
这
些字符串
会
在新的一行出
现
(
目前的上一行
)
;
p
:打印,亦即
½
某
个选择
的
数
据印出。通常
p
会
与
参数
sed
-
n
一起
运
作~
s
:取代,可以直½
½
行取代的工作哩!通常
这个
s
的
动
作可以搭配正
规
表示法!
例如
1,20s/old/new/g
就是啦!
.
以行为单位的新增
/
删除功能
sed
光是用看的是看不懂的啦!所以又要来练习了!先来玩玩删除与新增的功能吧!
范例一:
½
/etc/passwd
的
内
容列出并且打印行
号
,同
时
,
请½
第
2~5
行
删
除!
[dmtsai@study ~]$
nl /etc/passwd | sed '2,5d'
1 root:x:0:0:root:/root:/bin/bash
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
.....(
后面省略
).....
看到了吧?
sed
的动作为
'2,5d'
,那个
d
就是删除!因为
2-5
行给他删除了,所以显示的数据就没
有
2-5
行啰~
另外,注意一下,原本应该是要下达
sed -e
才对,没有
-e
也行啦!同时也要注意的
是,
sed
后面½的动作,请务必以
''
两个单引号括住喔!
如果题型变化一下,举例来说,如果只要删除第
2
行,可以使用『
nl /etc/passwd | sed '2d'
』来达成,
至于若是要删除第
3
到最后一行,则是『
nl /etc/passwd | sed '3,$d'
』的啦,那个
钱字号『
$
』代表
最后一行!
范例二:承上
题
,在第二行后
(
亦即是加在第三行
)
加上『
drink tea.
』字
样
!
[dmtsai@study ~]$
nl /etc/passwd | sed '2a drink tea'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
drink tea
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
.....(
后面省略
).....