每天学点Linux之sed命令的使用

xiaoxiao2021-02-28  126

每天学点Linux之sed命令的使用

前言

sed(Stream Editor)命令,是Linux中使用频率非常高的命令,主要用于对文本进行处理,处理的方式为逐行处理,并且默认不编辑原文件,在某些特定的情况下,甚至可以把sed命令认为是增强版的grep命令

sed命令的使用

sed [OPTION] 'address Command ' file,... # 其中, address用于指定所要操作的行,Command用于指定操作的命令

OPTION

-n:静默模式,不显示模式空间中的内容 -i:直接修改原文件(谨慎使用) -e SCRIPT -e SCRIPT:可以指定同时指定多个脚本 -f /PATH/TP/SED_SCRIPT:从文本中加载脚本 -r:使用扩展正则表达式

Adress

1、startLine,endLine # 用于指定所要编辑的起始行、结束行1,100 表示处理文本中从1100行的内容 $:表示最后一行 $-1:表示倒数第二行 2/REG_EXP/ # 使用正则表达式进行匹配 这里需要注意的是,正则表达式左右两边的/不可省略,用于标志正则表达式 3/PATTERN1//PATTERN2/ # 第一次被PATTERN1匹配的行到第一次被PATTERN2匹配到的行 4、LineNumber # 只对某一行进行编辑 5、StartLine,+N # 从指定行开始,并且向后N行

Command

d:删除符合条件的行 p:显示符合条件的行 a \string:在指定行后面追加内容,内容为string \n:表示追加新行 i \string:在指定行前面追加内容,内容为string r FILE:将指定文件内容添加至符合条件处 w FILE:将符合条件的内容写出到文件 s /pattern/string/修饰符:查找并替换,默认只替换每行中第一次被模式匹配到的字符串 分隔符可以使用其他字符,如:@、#, s@@@ s### 匹配所有的字符串:+修饰符 g:全局替换 i:忽略字符大小写 &:引用模式匹配到的整个串 支持后向引用

sed命令的简单演示

为了演示方便,这里我们使用前面一个小节中创建的文件grepText

1、显示13行文件 # sed -n '1,3p' grepText 结果为 a ab aab 2、删除13行文件 # sed '1,3d' grepText 结果为 hello world cccccccccccccccc 123aaaa1223 aaa22233aaaa aaa 222 sss -- -- aa*888dad--6$# 3、查找18行中的数字,并且将其替换为空格 # sed '1,8 s/[[:digit:]]/ /g' grepText 结果为: a ab aab hello world cccccccccccccccc aaaa aaa aaaa 【注意这里】 aaa 222 sss -- -- aa*888dad--6$#

总结

本小节主要学习了sed命令的工作模式以及sed命令的基本使用,Linux的学习之路还在继续

转载请注明原文地址: https://www.6miu.com/read-29189.html

最新回复(0)