sed
(stream editor)是 Linux 和 Unix 系统中一个非常强大的流编辑器,它用于对文本数据进行过滤和转换。以下是 sed
命令的一些基本用法和功能:
基本语法
sed [选项]... '命令' 文件...
或者
sed [选项]... -e '命令1' -e '命令2'... -e '命令N' 文件...
或者
sed [选项]... -f 脚本文件 文件...
常用选项
-e
:直接在命令行上进行 sed 动作编辑。-f
:从脚本文件中读取编辑命令。-i
:直接修改文件内容,不输出到标准输出。-n
:仅打印经过 sed 处理后的行。-r
:使用扩展正则表达式。
常用命令
s
:替换操作。d
:删除操作。a
:追加操作。i
:插入操作。c
:替换操作,与s
类似,但是替换整行。
替换操作(s)
基本语法:
s/查找模式/替换模式/标志
g
:全局替换。p
:打印结果。i
:忽略大小写。
实例
- 替换文本:
sed 's/old/new/' filename
这将在 filename
文件中查找所有 "old" 字符串并替换为 "new"。
- 全局替换:
sed 's/old/new/g' filename
这将替换文件中所有 "old" 字符串为 "new"。
- 忽略大小写替换:
sed 's/old/new/I' filename
这将忽略大小写,替换所有 "old" 字符串为 "new"。
- 删除行:
sed 'd' filename
这将删除文件中的所有行。
- 追加文本:
sed '$a\
new line' filename
这将在文件的末尾追加一行文本 "new line"。
6. **插入文本**:
```bash
sed '1i\new line' filename
这将在文件的第一行之前插入一行文本 "new line"。
- 使用扩展正则表达式:
sed -r 's/(\d+)-(\d+)/\1.\2/' filename
这将使用扩展正则表达式将 "123-456" 替换为 "123.456"。
- 直接修改文件:
sed -i 's/old/new/' filename
这将直接修改文件内容,将所有 "old" 替换为 "new"。
sed
命令非常灵活,可以通过组合不同的命令和选项来实现复杂的文本处理任务。