sed命令
# sed [参数] ‘<条件>’ <文件名>
[参数]
-n 不再显示模式空间里的内容(默认是显示的)
-i 直接修改源文件
-e 同时执行多个匹配操作
-r 表示执行正则扩展
-f 读取预先编写好的流处理文件(每个操作独占一行)
例如:sed -f /tmp/1.txt /etc/fstab
<条件>
01---(d:删除某一行)
02---(p:显示某一行)
03---(a:在后面追加一行)
04---(i:在前面追加一行)
05---(c:替换某一行内容)
06---(=:显示行号)
07---(s/查找内容/替换内容/[修饰符]:查找并替换)
08---(r file:将fileli的内容添加到符合条件的行后面)
09---(w file:将匹配后的内容写入到file文件内)
示例:
01---(d:删除某一行)
删除第5行
sed '5d' /test/aaa.txt
02---(p:显示某一行)
显示“任意字符开头”的行
sed '/^./p' /test/aaa.txt
03---(a:在后面追加一行)
在“符合条件的行后面追加新行”
sed '/^abc/a \Hello word' /test/aaa.txt
04---(i:在前面追加一行)
在“符合条件的行前面追加新行”
sed '/^abc/i \Hello word' /test/aaa.txt
05---(c:替换某一行内容)
替换“第7行的内容为:Hello word"
sed '7c \Hello word' /test/aaa.txt
06---(=:显示行号)
显示最后一行的行号
sed '$=' /test/aaa.txt
07---(s/查找内容/替换内容/[修饰符]:查找并替换)
查找每一行中的abc并替换为ccc
sed 's/abc/ccc/[修饰符]' /test/aaa.txt
[修饰符]:
g:替换每一行所有的字符
i:忽略大小写[补充]:默认只替换每行第一次匹配到的字符
08---(r file:将fileli的内容添加到符合条件的行后面)
在文件的第n行后追加文件里的内容
sed '2r /etc/abc.txt' /test/aaa.txt
09---(w file:将匹配后的内容写入到file文件内)
将符合条件的内容,另存到file文件中
sed '/^abc/w /etc/abc.txt' /test/aaa.txt
网友评论