linux笔记三:grep和sed的用法
grep [option] Pattern [FILE...]
-i:忽略大小写
--colour:用高亮的颜色显示
-v:显示没有被匹配到的行
-o:只显示被匹配到的字符串
-E:使用扩展正则表达式
-A #:包括后来多少行
-B #:包括前面多少行
-C #:包括前后多少行
扩展正则表达式:
字符匹配:
.
[] 如:a-z,A-Z
[^]
次数匹配:
*:其前字符任意次
?:匹配其前面的字符1次或0次
+:匹配其前面的字符至少一次
{m,n}:
位置锚定:
^:锚定行首,此字符后面的任意内容必须出现在行首
$:锚定行尾,此字符后面的任意内容必须出现在行首
^$:空白行
\<或者\b:锚定词首,其后面的任意字符必须作为单词的首部出现
\>或者\b:锚定词尾,其前面的任意字符必须作为单词的前部出现
sed基本用法;
sed:行编辑器
sed ‘AddressCommand’ file....
-n:静默模式,不在默认显示模式空间内的内容
-i:直接修改原文件
-e SCRIPT -e SCRIPT:可同时执行多个脚本
-f /PATH/TO/SED_SCRIPT:
-r:表示使用扩展正则表达式
command:
d
p
a \string
i \string
r filename
w filename
s/pattern/string/修饰符:
g:全局替换
i:查找时忽略大小写
sed练习:
1、删除/etc/grub.conf文件中行首的空白符;
sed -r ‘s@^[[:space:]]+@@g‘ /etc/grub.conf
2、替换/etc/inittab文件中“id:3:initdefault:"一行中的数字为5;
sed ‘s@\(id:\)[0-9]\(:initdefault:\)@\15\2@g‘ /etc/inittab
3、删除/etc/inittab文件中的空白行;
sed ‘/^$/d‘ /etc/inittab
4、删除/etc/inittab文件中开头的#号;
sed ‘s/^#//g‘ /etc/inittab
5、删除某文件中开头的#号,但要求#号后面必须有空白字符;
sed -r ‘s@^#[[:space:]]+@@g‘ /etc/inittab
6、删除某文件中以空白字符后面跟#的护航中的开头的空白字符及#
sed -r ‘s@^[[:space:]]+#@@g‘ /etc/inittab
7、取出一个文件路径的目录名称;
echo "/etc/rc.d" | sed -r ‘s@^(/.*/)[^/]+/?@\1@g‘
本文出自 “撒旦天天” 博客,请务必保留此出处http://satantiantian.blog.51cto.com/6159537/1569246
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。