sed的用法以及练习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed的用法以及练习相关的知识,希望对你有一定的参考价值。
sed命令:
sed是主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等的文件处理工具。
常用选项:
sed [options] ‘AddressCommand‘ file ...
-n: 静默模式,不再默认显示模式空间中的内容,只显示被处理的行。
-i: 直接修改原文件。(慎用)
-e SCRIPT -e SCRIPT:可以同时执行多个脚本
-f /PATH/TO/SED_SCRIPT
sed -f /path/to/scripts file
-r: 表示使用扩展正则表达式
常用命令:
a ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d ∶删除,因为是删除啊,所以 d 后面通常不接任何东西;
i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
s ∶取代,可以直接进行取代的工作,通常这个 s 的动作可以搭配正规表示法!
1、删除/etc/grub.conf文件中行首的空白符;
sed -r ‘s/[[:space:]]//g‘ /etc/grub.conf
2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5;
sed ‘[email protected]\(id:\)[0-9]\(:initdefault:\)@\15\[email protected]‘ /etc/inittab,其中\1和\2为地址空间引用;
3、删除/etc/inittab文件中的空白行;
sed ‘/^$/d‘ /etc/inittab
4、删除/etc/inittab文件中开头的#号;
sed ‘s/^\#//g‘ /etc/inittab
5、删除某文件中开头的#号及后面的空白字符,但要求#号后面必须有空白字符;
sed ‘s/^\#[[::space:]]+//g‘ /etc/inittab
6、删除某文件中以空白字符后面跟#类的行中的开头的空白字符及#
sed -r ‘[email protected]^[[:space:]]+#@@g‘ /etc/inittab
7、取出一个文件路径的目录名称;
echo ‘/etc/rc.d‘ | sed -r ‘[email protected]^(/.*/)[^/]+/[email protected]\[email protected]‘
以上是关于sed的用法以及练习的主要内容,如果未能解决你的问题,请参考以下文章