Linux 文本处理工具 sed 电脑版发表于:2020/4/19 18:17 ![linux](https://img.tnblog.net/arcimg/hb/b2c6db479be04515bfe4eabfcff4a966.jpg "linux") ># 文本处理工具 sed [TOC] <br/> ###### sed 介绍 ------------ > sed 是一种非交互式的流编辑器,它会集于原文件进行文本处理,但并不会修改原有的文件 <br/> ###### sed 简单演示 ------------ 创建 **sed.txt** 文件,然后添加任意内容 > --> 表示替换 将**sed.txt**中的this --> That , line --> Line ```bash sed -e 's/this/That/g' -e 's/line/Line/g' sed.txt 或者 sed -e 's/this/That/g' ; 's/line/Line/g' sed.txt ``` ###### 删除 ------------ >将file的第一行删除后输出到屏幕 ```bash sed '1d' Sed.txt ``` >通过 **sed** 把修改后的内容输出到 saved_file ```bash sed '1d' Sed.txt > saved_file ``` >删除指定范围的行(第1行到第3行) ```bash sed '1,3d' Sed.txt ``` >删除指定范围的行(这里从第1行删到最后一行) ```bash sed '1,$d' Sed.txt ``` >删除最后一行 ```bash sed '$d' Sed.txt ``` >只保留第5行 ```bash sed '5!d' Sed.txt ``` >删除所有包含Empty的行 ```bash sed '/Empty/d' Sed.txt ``` >删除空行 ```bash sed 's/^$/d' Sed.txt ``` ###### 查找替换 ------------ <br/> >s命令是用于替换文本,本例中使用line替换LINE >每行第一个匹配的line被替换 ```bash sed 's/line/LINE/' Sed.txt ``` >最多匹配2个line被替换 ```bash sed 's/line/LINE/2' Sed.txt ``` >匹配所有line ```bash sed 's/line/LINE/g' Sed.txt ``` >只替换开头的this为that ```bash sed 's/^this/that/' Sed.txt ``` ###### 字符转换 ------------ >O-->N , L-->E , D-->W ```bash sed 'y/OLD/NEW/' Sed.txt ``` ###### 读入文本 ------------ >将 /etc/passwd 内容放到 sed.txt 的空行后面 ```bash sed '/^$/r /etc/passwd' Sed.txt ``` ###### 打印 ------------ >打印出第一行 ```bash sed -n '1p' Sed.txt ``` >the-->THE ```bash sed 's/the/THE' Sed.txt ``` >打印处理过后的行 ```bash sed -n 's/the/THE/p' Sed.txt ``` ###### 写文件 ------------ >将Sed.txt文件的1,2行写到output中 ```bash sed -n '1,2 w output' Sed.txt ``` ###### 写sed脚本 ------------ >创建Sed.rules规则文件 ``` s/this/THAT/g /^$/d ``` >去验证Sed.txt ```bash sed -f Sed.rules Sed.txt ``` 感谢各位的观看!!!