成都网站快照优化公司,产品网站建设多少钱,重庆短视频培训,桂林网站建设培训班sed是一种流编辑器#xff0c;它一次处理一行内容。处理时#xff0c;把当前处理的行存储在临时缓冲区中#xff0c;称为“模式空间”#xff0c;接着用sed命令处理缓冲区中的内容#xff0c;处理完成后#xff0c;把缓冲区的内容送往屏幕。接着处理下一行#xff0c;这…sed是一种流编辑器它一次处理一行内容。处理时把当前处理的行存储在临时缓冲区中称为“模式空间”接着用sed命令处理缓冲区中的内容处理完成后把缓冲区的内容送往屏幕。接着处理下一行这样不断重复直到文件末尾。文件内容并没有改变除非你使用重定向存储输出。
一.基本语法
sed [options] commands files
options可选的命令行选项。commands要执行的sed命令。files要处理的文件列表。
1.替换文本替换第一个匹配项
sed s/old/new/ file.txt替换所有匹配项
sed s/old/new/g file.txt2.打印行打印文件中所有行
sed -n p file.txt3.删除行删除包含特定文本的所有行
sed /pattern/d file.txt4.插入文本在第一行前插入文本
sed i\new line file.txt5.追加文本在最后一行后追加文本
sed a\new line file.txt6.替换特定行替换第3行
sed 3s/old/new/ file.txt7.使用模式分隔符使用其他字符作为分隔符
sed s#old#new# file.txt8.使用正则表达式使用扩展正则表达式需要 -r 选项
sed -r s/regex/replacement/ file.txt9.原地编辑文件直接修改文件内容
sed -i s/old/new/g file.txt10.不区分大小写进行不区分大小写的替换
sed s/old/new/I file.txt11.多行模式处理多行匹配
sed :a;N;$!ba;s/old/new/g file.txt12.使用循环对于每找到一个匹配项执行特定命令
sed -n /foo/{ :a p; n; ba; } file.txt
二.实操案例
首先需要建立一个文档。 1.替换文本 cat test.txt #与之后的内容进行对比old-old-new
I love biology
DJAKNCKALNXLKLHDJKkljkxkxhka
2021-6-27
你好努力攀登的科学树
sed s/old/new/ test.txt #替换第一个匹配项
new-old-new
I love biology
DJAKNCKALNXLKLHDJKkljkxkxhka
2021-6-27
你好努力攀登的科学树
sed s/old/new/g test.txt #替换所有匹配项new-new-new
I love biology
DJAKNCKALNXLKLHDJKkljkxkxhka
2021-6-27
你好努力攀登的科学树2.打印行
sed -n p test.txt #打印文件中所有行old-old-new
I love biology
DJAKNCKALNXLKLHDJKkljkxkxhka
2021-6-27
你好努力攀登的科学树
sed -n 2p test.txt #打印文件中第二行I love biology
sed -n 2,4p test.txt #打印文件中第二到第四行I love biology
DJAKNCKALNXLKLHDJKkljkxkxhka
2021-6-273.删除行
sed /o/d test.txt #删除包含特定文本的所有行DJAKNCKALNXLKLHDJKkljkxkxhka
2021-6-27
你好努力攀登的科学树4.插入文本
sed i\bew line test.txt #在第一行前插入bew line
old-old-new
bew line
I love biology
bew line
DJAKNCKALNXLKLHDJKkljkxkxhka
bew line
2021-6-27
bew line
你好努力攀登的科学树
sed 3i\biology test.txt #在第三行前插入old-old-new
I love biology
biology
DJAKNCKALNXLKLHDJKkljkxkxhka
2021-6-27
你好努力攀登的科学树5.追加文本
sed a\new line test.txt #在最后一行追加文本old-old-new
new line
I love biology
new line
DJAKNCKALNXLKLHDJKkljkxkxhka
new line
2021-6-27
new line
你好努力攀登的科学树
new line6.替换特定行
sed 2s/love/like/ test.txt #替换第二行的love将其改为likeold-old-new
I like biology
DJAKNCKALNXLKLHDJKkljkxkxhka
2021-6-27
你好努力攀登的科学树以上操作都没有改变原文件。 7.编辑原文件 sed -i s/old/new/g test.txt | cat test.txtnew-new-new
I love biology
DJAKNCKALNXLKLHDJKkljkxkxhka
2021-6-27
你好努力攀登的科学树