Linux常用命令——sed 命令详解
命令介绍: sed(stream editor)是一种强大的文本处理工具,在Linux系统中广泛用于对文件进行过滤和转换。sed 可以对文件中的文本进行插入、删除、查找和替换等操作。
基本语法:
sed [选项] '命令' 文件
常用选项和参数:
- 无参数: 简单替换。
- 示例:
1、把 file.txt 中的第一个 old 替换为 new。
sed 's/old/new/' file.txt
2、把 file.txt 中的所有 old 替换为 new。
sed 's/old/new/g' file.txt
- -e script, --expression=script: 指定要执行的脚本,允许执行一个或多个 sed 脚本。
- 示例: 在 file.txt 中先把 old 替换为 new,然后把 foo 替换为 bar。
sed -e 's/old/new/' -e 's/foo/bar/' file.txt
- -f, --file=script-file: :从指定文件中读取 sed 命令脚本。
示例: 执行 script.sed 中的所有 sed 命令,作用于 file.txt。
sed -f script.sed file.txt
- -i[SUFFIX], --in-place[=SUFFIX]: 直接编辑文件内容,而不是输出到标准输出。如果指定 SUFFIX,备份文件将保存为原文件名加 SUFFIX 后缀。
- 示例:
sed -i.bak 's/old/new/' file.txt
- -n: 抑制默认输出,仅输出经过 sed 处理的行,而不是所有输入行。
- 示例: 仅输出 file.txt 中包含 old 并被替换为 new 的行。
sed -n 's/old/new/p' file.txt
- -r, --regexp-extended: 使用扩展的正则表达式。
- 示例:
sed -r 's/(old|OLD)/new/g' file.txt
- -s, --separate: 将每个文件视为单独的文件流,而不是连接在一起。
- 示例:
sed -s 's/old/new/' file1.txt file2.txt
- -u, --unbuffered: 保持输入的缓冲,将输入作为未缓冲的数据处理,逐行处理。
- 示例:
sed -u 's/old/new/' file.txt
更多命令请参考 Linux命令大全 专栏。