使用 sed Linux 命令进行文本和文件处理


Sed 是一种流编辑器。流编辑器用于对输入文件进行常规的文本转换。在某些方面,它类似于允许脚本化编辑(如 ed)的编辑器。sed 通过对输入进行一次遍历来工作,因此效率更高。现在,让我们进一步了解“使用 sed Linux 命令进行文本和文件处理”。

首先,要验证 sed 版本,请使用以下命令:

$ sed --v

示例输出应如下所示:

sed (GNU sed) 4.2.2
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later .
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
.........................................................................................

In the below example, abc.txt is the file name.

Sed 命令及其描述

序号命令描述
1$sed ‘s/tutorials/tutorialspoint/’ abc.txt将“tutorials”替换为“tutorialspoint”
2$sed ‘$d’ abc.txt删除 abc.txt 文件中的最后一行
3$sed ‘s/^[ ^t]*//’ abc.txt删除 abc.txt 文件中每行开头的所有空格
4$sed ‘s/[ ^t]*$//’ file.txt删除 abc.txt 文件中每行末尾的所有空格
5$sed ‘s/tutorials/tutorialspoint/p’ abc.txt在 abc.txt 文件中包含指定字符串的行后,打印该行两次
6$ sed ‘s/tutorialspoint/tutorials/g’ abc.txt这是一个全局替换命令,用于在 abc.txt 文件中将“tutorialspoint”替换为“tutorials”
7$ sed -n ‘s/tutorialspoint/tutorials/p’ abc.txt显示 abc.txt 文件中已替换的行
8$sed ‘1 s/tutorialspoint/tutorials/’ abc.txt替换 abc.txt 文件中指定行的字符串(在上面的命令中,它替换第一行(1)的字符串)
9$ sed ‘1,3 s/tutorialspoint/tutorials/’ abc.txt替换 abc.txt 文件中特定范围内的字符串(在上面的示例中,它替换从第一行到第三行的字符串)
10$sed ‘/./,$!d’ abc.txt删除 abc.txt 文件中的所有空行
11$sed ‘3,$ d’ abc.txt删除 abc.txt 文件中的特定行(第三行)
12$sed ‘p’ abc.txt在 abc.txt 文件中将每行打印两次
13$ sed ‘i “Add a new line”‘ abc.txt在 abc.txt 文件中每行的前面添加指定的行(“Add a new line”)
14$ sed ‘a “Add a new line”‘ abc.txt在 abc.txt 文件中每行的后面添加指定的行(“Add a new line”)
15$sed -n ‘/tutorialspoint/ p’ abc.txt在 abc.txt 文件的每一行中查找指定的搜索字符串(tutorialspoint)

在本文中,我们学习了如何使用 sed Linux 命令进行文本和文件处理。在我们的下一篇文章中,我们将介绍更多基于 Linux 的技巧和提示。请继续关注!

更新于:2020年1月17日

488 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告