Sed - 有用的资源
-
简述
SED 是一个了不起的实用程序,它允许以多种方式解决问题。这就是 UNIX 方式,而 SED 完美地证明了这一点。GNU/Linux 提供了许多有用的实用程序来执行日常任务。让我们使用 SED 模拟一些实用程序。有时看起来我们正在以艰难的方式解决一个简单的问题,但其目的只是为了展示 SED 的力量。 -
cat 命令
在以下示例中,每一行都作为默认工作流程的一部分打印。执行上面的代码,你会得到以下结果:以下示例使用 print 命令显示文件内容。执行上面的代码,你会得到以下结果: -
删除空行
在以下示例中,“^$”表示空行,当模式匹配成功时,空行将被删除。执行上面的代码,你会得到以下结果:同样,以下示例仅在该行非空时才打印该行。执行上面的代码,你会得到以下结果: -
从 C++ 程序中删除注释行
让我们创建一个示例 C++ 程序。现在使用以下正则表达式删除注释。执行上面的代码,你会得到以下结果: -
在某些行之前添加注释
以下示例在第 3 到 5 行之前添加注释。执行上面的代码,你会得到以下结果: -
wc -l 命令
“wc -l”命令计算文件中存在的行数。以下 SED 表达式模拟相同。执行上面的代码,你会得到以下结果: -
head 命令
默认情况下,head 命令打印文件的前 10 行。让我们用 SED 模拟相同的行为。执行上面的代码,你会得到以下结果: -
Tail -1 命令
“tail -1”打印文件的最后一行。以下语法显示了它的模拟。执行上面的代码,你会得到以下结果:让我们编写 SED 脚本。执行上面的代码,你会得到以下结果: -
Dos2unix 命令
在 DOS 环境中,换行符由 CR/LF 字符的组合表示。以下模拟“dos2unix”命令将 DOS 换行符转换为 UNIX 换行符。在 GNU/Linux 中,此字符通常被视为“^M”(控制 M)字符。执行上面的代码,你会得到以下结果:让我们使用 SED 模拟命令。执行上面的代码,你会得到以下结果:现在让我们显示文件内容。执行上面的代码,你会得到以下结果: -
Unix2dos 命令
与“dos2unix”类似,有一个“unix2dos”命令将 UNIX 换行符转换为 DOS 换行符。以下示例显示了相同的模拟。执行上面的代码,你会得到以下结果:让我们使用 SED 模拟命令。执行上面的代码,你会得到以下结果:现在让我们显示文件内容。执行上面的代码,你会得到以下结果: -
cat -E 命令
“cat -E”命令以美元($)字符显示行尾。以下 SED 示例是相同的模拟。执行上面的代码,你会得到以下结果:让我们使用 SED 模拟命令。执行上面的代码,你会得到以下结果: -
Cat-ET 命令
“cat -ET”命令在每行末尾显示美元($)符号,并将制表符显示为“^I”。以下示例显示了使用 SED 模拟“cat -ET”命令。执行上面的代码,你会得到以下结果:让我们使用 SED 模拟命令。执行上面的代码,你会得到以下结果: -
nl 命令
“nl”命令只是对文件的行进行编号。以下 SED 脚本模拟此行为。执行上面的代码,你会得到以下结果:第一个 SED 表达式打印行号及其内容,第二个 SED 表达式合并这两行并将换行符转换为 TAB 字符。 -
cp 命令
“cp”命令创建文件的另一个副本。以下 SED 脚本模拟此行为。执行上面的代码,你会得到以下结果: -
展开命令
“expand”命令将 TAB 字符转换为空格。下面的代码显示了它的模拟。执行上面的代码,你会得到以下结果: -
tee 命令
“tee”命令将数据转储到标准输出流和文件中。下面给出的是“tee”命令的模拟。让我们使用 SED 模拟命令。执行上面的代码,你会得到以下结果: -
cat -s 命令
UNIX“cat -s”命令抑制重复的空输出行。以下代码显示了“cat -s”命令的模拟。执行上面的代码,你会得到以下结果:让我们使用 SED 模拟命令。执行上面的代码,你会得到以下结果: -
grep 命令
默认情况下,“grep”命令在模式匹配成功时打印一行。下面的代码显示了它的模拟。执行上面的代码,你会得到以下结果:让我们使用 SED 模拟命令。执行上面的代码,你会得到以下结果: -
grep -v 命令
默认情况下,“grep -v”命令会在模式匹配失败时打印一行。下面的代码显示了它的模拟。执行上面的代码,你会得到以下结果:让我们使用 SED 模拟命令。执行上面的代码,你会得到以下结果: -
tr 命令
“tr”命令翻译字符。下面给出了它的模拟。执行上面的代码,你会得到以下结果:让我们使用 SED 模拟命令。执行上面的代码,你会得到以下结果: