sed
代表流编辑器。它是一个基于命令行的 Linux 编辑器。 sed 的流行用途是在 Linux 中作为自动化脚本的一部分编辑文件,因为通常的编辑器需要用户主动输入并且不能在编辑器屏幕之外编辑文件。 Sed 最常用于从命令行进行查找和替换。
这种类型的文本编辑器也可以归类为非交互式文本编辑器。
让我们看看使用 Sed 编辑文件的一些常见选项。我们将以以下文件为例:
$: cat test.txt 一只敏捷的棕色狗跳过了懒惰的猫。 Linux 操作系统。我家附近的森林有一只猫和狼。
搜索和替换
要在文件中搜索字符串并替换为另一个字符串,请运行:
sed -i "s/cat/fox/g" test.txt
![](http://img.drupalst.com/wp-content/uploads/linux/2309/k7w6pcxifv.jpg)
在这里, -一世
标志指示 sed 将更改写入文件。没有这面旗帜, sed
将只显示具有更改字符串的文件。
在引号中,我们有 s/猫/狐狸/克
.这 秒
用于搜索和替换命令 sed
.然后我们就有了要搜索的字符串,也就是 猫
.然后用字符串替换它,即 狐狸
.最后,我们有可选的 G
,它指示 sed
替换文件所有行上的所有出现。没有 G
, sed 将仅替换第一次出现的 猫
在每一行。
正则表达式也可以在这里使用。
sed -i "s/f[a-z]*\./cat\./g"
![](http://img.drupalst.com/wp-content/uploads/linux/2309/k7w6pcxifv-1.jpg)
插入
要在具有匹配字符串的行之前插入文本,请使用:
sed -i "/cat/i 开始:" test.txt
![](http://img.drupalst.com/wp-content/uploads/linux/2309/k7w6pcxifv-2.jpg)
这里, 猫
是搜索的字符串和 开始:
是在找到搜索字符串的行之前输入的字符串。
同样,要在一行后插入文本,请使用:
sed -i "/fox/a 结束。"测试.txt
![](http://img.drupalst.com/wp-content/uploads/linux/2309/k7w6pcxifv-3.jpg)
删除
要删除包含子字符串的行,请使用:
sed -i "/Linux/d" test.txt
![](http://img.drupalst.com/wp-content/uploads/linux/2309/k7w6pcxifv-4.jpg)
删除带有行号的行,例如。第一行,使用:
sed -i '1d' test.txt
![](http://img.drupalst.com/wp-content/uploads/linux/2309/k7w6pcxifv-5.jpg)
结合多种功能
结合多个功能,例如。搜索和替换,删除,在一个命令中, -e
可以使用标志。
sed -i -e "s/fox/cat/g" -e '2d' test.txt
![](http://img.drupalst.com/wp-content/uploads/linux/2309/k7w6pcxifv-6.jpg)
? 干杯!