本文共 1602 字,大约阅读时间需要 5 分钟。
SED命令入门与实践指南
基本用法
SED是一种强大的文本处理工具,广泛应用于文本编辑、替换、删除等操作。其基本用法通常为: `sed [选项] "指令" 文件` 例如: `sed -i "1ahello" 1.txt` - 在文件1.txt的第一行后面追加“hello”
常用选项
1. **-e**:将多个SED指令放在同一条命令中使用。 2. **-f**:将SED指令存储在文件中,后续可执行文件中的指令。 3. **-i**:直接修改文件内容(默认仅显示差异)。 4. **-n**:取消默认输出,仅显示处理结果。
编辑命令
1. **a**:追加内容,插入匹配行后。 2. **c**:替换匹配行内容。 3. **i**:插入内容,匹配行前。 4. **d**:删除匹配内容。 5. **s**:替换匹配内容。 6. **p**:打印匹配内容(需配合-n使用)。 7. **=**:打印匹配行的行号。 8. **n**:跳转到下一行。 9. **r/w**:读取/写入文件。 10. **//**:指定匹配字符串。
常用行号指定
- **1,2**:指定第一、二行。 - **1~2**:指定第一至第二行。 - **$**:指定最后一行。 - **^$**:指定空行。 - **.***:匹配所有内容。 - **#/,.*//g’**:匹配#开头的行及后续所有内容。
实例
1. **追加内容**: `sed -i "2ahello" 1.txt` - 在第二行前插入“hello”。
- 替换内容:
sed -i "/ab/ichello" 1.txt
- 删除内容:
sed '1d' 1.txt
- 删除第一行。
sed '1,2d' 1.txt
- 删除第一至第二行。
- 替换字符串:
sed 's/12/hello' 1.txt
- 替换所有“12”为“hello”。
sed 's/12/hello/g' 1.txt
- 替换所有“12”。
- 读取与写入文件:
sed -n '1p' 1.txt
- 打印第一行。
sed -n '2w 2.txt' 1.txt
- 将第二行写入2.txt。
- 处理注释与空行:
sed 's/^#.*//;' 1.txt
- 删除注释行。
sed 's/^#.*//; /^$/d' 1.txt
- 先删除注释行,再删除空行。
- 行号操作:
sed -n '1~2p' 1.txt
高级操作
1. **匹配多行**: `sed -n '/ab/,5p' 1.txt` - 打印从“ab”行到第五行。 - 行号范围操作:
sed -n '1,/ab/p' 1.txt
- 行号打印:
sed -n "$=" 1.txt
- 文件操作:
sed '1r 2.txt' 1.txt
- 文件写入:
sed -n '2w 2.txt' 1.txt
- 文件注释处理:
sed 's/^[0-9]/(&)/' 1.txt
实际应用场景
- **批量替换注释**: `sed 's/^#.*//;/^$/d' 1.txt` - 删除注释行并保留非空行。 清理文件:
sed '$d' 1.txt
删除最后一行。
筛选与处理:
sed '/ab\|12/!d' 1.txt
删除不含“ab”或“12”的行。
行号范围删除:
sed '1,3{/ab/d}' 1.txt
删除第一至第三行中包含“ab”的行。
文件合并:
sed -n 'w 2.txt' 1.txt
将1.txt内容写入2.txt。
以上示例可根据实际需求调整,SED命令的灵活性和强大功能使其成为文本处理的理想工具。
转载地址:http://bekfk.baihongyu.com/