[Tool] [Linux三剑客] sed:流编辑器

简单操作

删除文件内以#开头的行

sed -i '/^#/d' file.txt

删除空白行和#开头的行

# 分号分隔
sed -i '/^#/d; /^\s*$/d' file.txt

From Kimi

sed(Stream Editor)是一种流编辑器,主要用于对文本文件进行快速、高效的编辑操作。它通过读取输入流(可以是文件或标准输入),按照指定的命令对文本进行处理,并将结果输出到标准输出(屏幕)或指定的文件中。以下是 sed 的主要作用和功能:

1. 文本替换

功能:sed 可以将文本中的某些内容替换为其他内容。
示例:

sed 's/old/new/' file.txt

这条命令会将文件 file.txt 中的每个 old 替换为 new,并输出到屏幕。如果需要直接修改文件,可以加上 -i 参数:

sed -i 's/old/new/' file.txt

2. 文本删除

功能:sed 可以删除文本中的某些行或内容。
示例:

sed '/pattern/d' file.txt

这条命令会删除文件 file.txt 中所有包含 pattern 的行。

3. 文本插入和追加

功能:sed 可以在文本的特定位置插入或追加内容。
示例:
在匹配到的行之前插入内容:

sed '/pattern/i\This is inserted before the matching line' file.txt

在匹配到的行之后追加内容:

sed '/pattern/a\This is appended after the matching line' file.txt
  1. 文本转换
    功能:sed 可以对文本字符进行转换,例如将大写字母转换为小写字母。
    示例:
sed 'y/ABCDEF/abcdef/' file.txt

这条命令会将文件 file.txt 中的所有大写字母 A-F 转换为小写字母 a-f。

5. 文本提取

功能:sed 可以提取文本中的特定部分。
示例:

sed -n '2p' file.txt

这条命令会提取文件 file.txt 的第 2 行并输出。

6. 文本格式化

功能:sed 可以对文本进行格式化,例如删除多余的空格或换行符。
示例:

sed 's/^[ \t]*//' file.txt

这条命令会删除文件 file.txt 中每行开头的空格和制表符。

7. 多行操作

功能:sed 可以对多行文本进行操作,例如将多行合并为一行。
示例:

sed ':a;N;$!ba;s/\n/ /g' file.txt

这条命令会将文件 file.txt 中的所有行合并为一行,用空格替换换行符。

8. 模式匹配

功能:sed 支持正则表达式,可以对复杂的文本模式进行匹配和处理。
示例:

sed '/^#/d' file.txt

这条命令会删除文件 file.txt 中所有以 # 开头的行。

总结

sed 是一个功能强大的文本处理工具,适用于自动化脚本和批量处理文本文件。它通过简单的命令语法,可以实现复杂的文本编辑操作,是系统管理员和开发人员常用的工具之一。

posted on 2025-02-10 15:24  风惊庭前叶  阅读(53)  评论(0)    收藏  举报