每天学点Linux之sed命令的使用
前言
sed(Stream Editor)命令,是Linux中使用频率非常高的命令,主要用于对文本进行处理,处理的方式为逐行处理,并且默认不编辑原文件,在某些特定的情况下,甚至可以把sed命令认为是增强版的grep命令
sed命令的使用
sed [OPTION]
'address Command ' file,
...
OPTION
-
n:静默模式,不显示模式空间中的内容
-
i:直接修改原文件(谨慎使用)
-
e SCRIPT -e SCRIPT:可以指定同时指定多个脚本
-
f /PATH/TP/SED_SCRIPT:从文本中加载脚本
-
r:使用扩展正则表达式
Adress
1、startLine,endLine
如
1,
100 表示处理文本中从
1到
100行的内容
$:表示最后一行
$-
1:表示倒数第二行
2、
/REG_EXP/
这里需要注意的是,正则表达式左右两边的/不可省略,用于标志正则表达式
3、
/PATTERN1/,
/PATTERN2/
4、LineNumber
5、StartLine,+N
Command
d:删除符合条件的行
p:显示符合条件的行
a \
string:在指定行后面追加内容,内容为
string
\n:表示追加新行
i \
string:在指定行前面追加内容,内容为
string
r FILE:将指定文件内容添加至符合条件处
w FILE:将符合条件的内容写出到文件
s /pattern/
string/修饰符:查找并替换,默认只替换每行中第一次被模式匹配到的字符串
分隔符可以使用其他字符,如:@、
匹配所有的字符串:+修饰符
g:全局替换
i:忽略字符大小写
&:引用模式匹配到的整个串
支持后向引用
sed命令的简单演示
为了演示方便,这里我们使用前面一个小节中创建的文件grepText
1、显示
1到
3行文件
结果为
a
ab
aab
2、删除
1到
3行文件
结果为
hello
world
cccccccccccccccc
123aaaa1223
aaa22233aaaa
aaa
222 sss
aa*
888dad
3、查找
1到
8行中的数字,并且将其替换为空格
结果为:
a
ab
aab
hello
world
cccccccccccccccc
aaaa
aaa aaaa 【注意这里】
aaa
222 sss
aa*
888dad
总结
本小节主要学习了sed命令的工作模式以及sed命令的基本使用,Linux的学习之路还在继续