摘要:的工作流程,流编辑器,默认对原文件不做任何处理,仅对模式空间的数据进行处理,处理结束后,将模式空间打印至屏幕。
sed的工作流程
sed: Stream Editor,流编辑器,默认对原文件不做任何处理,仅对模式空间的数据进行处理,处理结束后,将模式空间打印至屏幕。sed逐行将文件读取到模式空间(内存),进行模式匹配,如果符合模式进行编辑(取决给的编辑命令),之后进行下一行的操作sed命令格式
sed [options] "AddressCommand" file ... -n: 静默模式,不再默认显示模式空间的内容 -i: 直接修改原文件 -e SCRIPT -e SCRIPT: 可以同时执行多个脚本 -f /PATH/TO/SED_SCRIPT sed -f /path/to/script file 将脚本中的每条命令执行于file文件 -r: 表示使用扩展正则表达式Address:
1、StratLine,EndLine 比如1,100(第1行到第100行) $: 表示最后一行 2、/RegExp(正则表达式)/ 比如/^root/ 3、/pattern1/,/pattern2/ 第一次被模式1匹配的行开始到第一次被模式2匹配的结束,这中间所有的行 4、LineNumber: 指定某行 5、StarLine,+N 从startline开始,向后的N行Command:
d: 删除符合条件的行 p: 显示符合条件的行 a string: 在指定的行后面追加新行,内容为string, 可以用于换行 i string: 在指定的行前面添加新行,内容为string r FILE: 将指定的文件的内容添加到符合条件的行处 w FILE: 将指定范围的内容另存至指定的文件中 s/pattern/string/修饰符: 查找并替换,将pattern匹配到的内容替换成string(默认只替换每行中第一次被模式匹配到的字符串) 加修饰符 g: 全局替换 i: 忽略字符大小写 s///:s###:s@@@,也支持后向引用 (), 1, 2 &: 引用模式匹配整个串
sed "s#l..e#&r#g" sed.txt sed "s#(l..e)#1r#g" sed.txt sed "s#l(..e)#L1#g" sed.txt nano sed.txt hello, like hi, my love sed练习: 1、删除/etc/grub.conf文件中行首的空白符; 2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5; 3、删除/etc/inittab文件中的空白行; 4、删除/etc/inittab文件中开头的#号; 5、删除某文件中开头的#号及后面的空白字符,但要求#号后面必须有空白字符; 6、删除某文件中以空白字符后面跟#类的行中的开头的空白字符及# 7、取出一个文件路径的目录名称 基名 1、sed -r "s@^[[:space:]]+@@g" /etc/grub.conf 2、sed "s@(id:)[0-9](:initdefault:)@152@g" 3、sed "/^$/d" /etc/inittab 4、sed "s@^#@@g" /etc/inittab 5、sed -r "s@^#[[:space:]]+@@g" /etc/inittab 6、sed -r "s@^[[:space:]]+#@@g" /etc/inittab sed "s@^[[:space:]]{1,}#@@g" /etc/inittab 7、echo "/etc/rc.d" | sed -r "s@^(/.*/)[^/]+/?@1@g" echo "/etc/rc.d" | sed -r "s@^/.*/([^/]+)/?@1@g"
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/33489.html
摘要:指定输出的分隔符使用,将作为文件名之间的分割符。这个命令的作用就是将的内容,作为其他命令的参数进行调用。比如结合命令命令的分隔符除了可能是之外,也可能是空格。在不指定文件名的情况下,接受作为输入源。比如上述命令应该修改为。 本文列明Linux的常用命令用法,学会了这些命令之后,结合shell编程知识,就可以做各种自动编译/集成的工作啦。本文地址:https://segmentfault...
摘要:替换模式以上是命令的常用匹配模式,但它还有一个强大的替换模式,意思就是查找替换其中的某些值,并输出结果。看两个命令的语法好玩由于正则的关系,很多字符需要转义。注意前半部分的范围是不能使用这种方式的。sed命令应用广泛,使用简单,是快速文本处理的利器。它其实没多少技巧,背诵、使用是最合适的学习渠道,属于硬技能。但它又很复杂,因为高级功能太多。本篇不去关注sed的高级功能,仅对常用的一些操作,进...
摘要:命令应用广泛,使用简单,是快速文本处理的利器。范围表示找到文件中行的内容。最常用的,比如下面这个。常用的就是精确替换。表示将输出的每一行,执行一个命令。注意前半部分的范围是不能使用这种方式的。这是非常危险的。sed命令应用广泛,使用简单,是快速文本处理的利器。它其实没多少技巧,背诵、使用是最合适的学习渠道,属于硬技能。但它又很复杂,因为高级功能太多。本篇不去关注sed的高级功能,仅对常用的一...
摘要:看网上都有很多文章都写了常用命令,作为一个新手,可能用到的命令不多,那么这边就分两个部分总结,第一部分为自己平时常用的基本命令,第二部分为网上摘录的,觉得比较好的,可以作为自己扩展的一部分。注解为条件语句叹号表示反义不存在,代表目录。 看网上都有很多文章都写了常用命令,作为一个新手,可能用到的命令不多,那么这边就分两个部分总结,第一部分为自己平时常用的基本命令,第二部分为网上摘录的,觉...
摘要:看网上都有很多文章都写了常用命令,作为一个新手,可能用到的命令不多,那么这边就分两个部分总结,第一部分为自己平时常用的基本命令,第二部分为网上摘录的,觉得比较好的,可以作为自己扩展的一部分。注解为条件语句叹号表示反义不存在,代表目录。 看网上都有很多文章都写了常用命令,作为一个新手,可能用到的命令不多,那么这边就分两个部分总结,第一部分为自己平时常用的基本命令,第二部分为网上摘录的,觉...
阅读 1891·2023-04-26 00:50
阅读 2272·2021-10-13 09:39
阅读 1758·2021-10-09 09:41
阅读 1951·2021-09-22 15:34
阅读 1412·2021-09-04 16:41
阅读 1164·2019-08-30 15:55
阅读 2320·2019-08-30 15:53
阅读 1573·2019-08-30 15:52