我最近看到了很多sed,我发现这是一个相当混乱的命令。联机帮助页并不是特别有用,但我知道它可用于解析其他命令的输出。
究竟是sed什么以及它的用途是什么?我正在寻找一个全面的答案,涵盖sed它是什么、它的常用用途以及一些基本示例/语法。
定义
Unix System V:实用指南,马克·索贝尔着:
sed 实用程序是一个批处理(非交互式)编辑器。sed 命令通常存储在脚本文件中。. .虽然您可以从命令行给出简单的 sed 命令。. .
sed (GNU sed) 4.2.2 的手册页:
Sed 是一个流编辑器。流编辑器用于每个?在输入流(文件或管道输入)上形成基本的文本转换。
我的非正式定义:
Sed(流编辑器的缩写)是一种文本处理实用程序,它是在一次处理一行文本时开发的,但仍然是最强大的 Unix/Linux 实用程序之一;同时,它是一种脚本语言,专为处理文本而设计。
用途
正如定义所暗示的那样,sed用于批处理文本行、文本文件和管道文本流。它最常用于替换和删除文本:
echo "stackexchange" | sed 's/stackexchange/askubuntu/'
Run Code Online (Sandbox Code Playgroud)
但是,它也可以用来模仿其他命令的行为。例如,
dmesg | head -n 3(打印前 3 行),我们可以做dmesg | sed -n 1,3p.dmesg | grep 'wlan0'(搜索字符串),我们可以做dmesg | sed -n '/wlan0/p'sed与其他文本处理实用程序相比,最大的优势是-i标志,这意味着我们不仅可以将编辑过的文本输出到屏幕上,还可以将编辑内容实际保存到原始文件中。awk相比之下, flavors 仅在GNU awkversion 中有这样的功能。
sed可以在命令行上输入,多个模式用分号 ( ;)分隔或从-f标志后指定的脚本文件中获取,例如cat someTextfile.txt | sed -f myScript.sed
Sed 应用程序和示例
| 归档时间: |
|
| 查看次数: |
58979 次 |
| 最近记录: |