sed
的『
-i
』选项可以直½修改文件内容,这功能非常有帮助!举例来说,如果你有一个
100
万行
的文件,你要在第
100
行加某些文字,此时使用
vim
可能会疯掉!因为文件太大了!那怎办?就利
用
sed
啊!透过
sed
直½修改
/
取代的功能,你甚至不需要使用
vim
去修订!很棒吧!
总之,这个
sed
不错用啦!而且很多的
shell script
都会使用到这个指令的功能~
sed
可以帮助系统
管理员管理好日常的工作喔!要仔细的学习呢!
11.3
延伸正规表示法
事实上,一般读者只要了½基础型的正规表示法大概就已经相当足够了,不过,某些时刻为了要简化
整个指令操作,
了½一下使用范围更广的延伸型正规表示法的表示式会更方便呢!举个简单的例子
好了,在上½的
例题三的最后一个例子
中,我们要去除空白行与行首为
#
的行列,使用的是
grep -v '^$' regular_express.txt | grep -v '^#'
需要使用到管线命令来搜寻两次!那么如果使用延伸型的正规表示法,我们可以简化为:
egrep -v '^$|^#' regular_express.txt
延伸型正规表示法可以透过群组功能『
|
』来½行一次搜寻!那个在单引号内的管线意义为『或
or
』
啦!
是否变的更简单呢?此外,
grep
预设½支持基础正规表示法,如果要使用延伸型正规表示法,
你可以使用
grep -E
,
不过更½议直½使用
egrep
!直½区分指令比½好记忆!其实
egrep
与
grep
-E
是类似命令别名的关系啦!
熟悉了正规表示法之后,到这个延伸型的正规表示法,你应该也会想到,不就是多几个重要的特殊符
号吗?
^_^y
是的~所以,我们就直½来说明一下,延伸型正规表示法有哪几个特殊符号?由于底下
的范例还是有使用到
regular_express.txt
,不巧的是刚刚我们可能½该文件修改过了
@_@
,所以,
请重新下载该文件来练习喔!
RE
字
符
意义与范例
+
意义:重复『一个或一个以上』的前一个
RE
字符
范例:搜寻
(god) (good) (goood)...
等等的字符串。
那个
o+
代表『一个以上的
o
』所以,底下
的执行成果会½第
1, 9, 13
行列出来。
egrep
-
n 'go+d' regular_express.txt
.
意义:『零个或一个』的前一个
RE
字符
范例:搜寻
(gd) (god)
这两个字符串。
那个
o.
代表『空的或
1
个
o
』所以,上面的执行成果会½
第
13, 14
行列出来。
有没有发现到,这两个案例
( 'go+d'
与
'go.d' )
的½果集合与
'go*d'
相同?
想想看,这是为什么喔!
^_^
egrep
-
n 'go.d' regular_express.txt
|
意义:用或
( or )
的方式找出数个字符串
范例:搜寻
gd
或
good
这两个字符串,注意,是『或』!
所以,第
1,9,14
这三行都可以被打印出来喔!
那如果还想要找出
dog
呢?
egrep
-
n 'gd|good' regular_express.txt