使用sed命令查找和替换文件中的字符串的16个示例
原创使用sed命令查找和替换文件中的字符串的16个示例
在Linux和Unix系统中,`sed`(Stream Editor)是一个非常强势的文本处理工具,它可以用来查找、替换和编辑文本。下面我将提供16个使用`sed`命令查找和替换文件中字符串的示例,这些示例涵盖了从易懂的替换到更繁复的文本处理。
### 示例1:易懂的字符串替换
将文件中的所有“old”替换为“new”。
sh
sed 's/old/new/g' filename
### 示例2:忽略大小写进行替换
将文件中的所有“Old”替换为“New”,忽略大小写。
sh
sed -i 's/old/New/gi' filename
### 示例3:替换匹配特定模式的字符串
将文件中所有包含“example”的行中的“old”替换为“new”。
sh
sed '/example/s/old/new/g' filename
### 示例4:替换但不输出最终
将文件中的所有“old”替换为“new”,但不显示替换后的内容。
sh
sed 's/old/new/g' filename > /dev/null
### 示例5:使用正则表达式进行替换
将文件中所有以“abc”开头的单词替换为“xyz”。
sh
sed 's/abc\w*/xyz/g' filename
### 示例6:替换多个字符串
将文件中的“old1”替换为“new1”,同时将“old2”替换为“new2”。
sh
sed -i 's/old1/new1/g; s/old2/new2/g' filename
### 示例7:替换文本行中的第一个匹配项
将文件中每行第一个出现的“old”替换为“new”。
sh
sed 's/old/new/g' filename | sed 's/old/new/g'
### 示例8:替换特定行的内容
将文件中第3行中的“old”替换为“new”。
sh
sed -n '3 s/old/new/g p' filename
### 示例9:替换多行中的内容
将文件中第2到第4行中的“old”替换为“new”。
sh
sed -n '2,4 s/old/new/g p' filename
### 示例10:替换整个文件内容
将整个文件内容中的“old”替换为“new”。
sh
sed -i 's/old/new/g' filename
### 示例11:替换文件中的注释
假设文件中注释以“;”起初,将所有注释中的“old”替换为“new”。
sh
sed -i '/;.*old/s/old/new/g' filename
### 示例12:替换字符串并保留行号
将文件中的“old”替换为“new”,并显示行号。
sh
sed -n '/old/ s/old/new/g p' filename
### 示例13:替换字符串并删除行
将文件中所有包含“old”的行替换为“new”,并删除这些行。
sh
sed -i '/old/d' filename
### 示例14:替换字符串并添加新行
将文件中所有包含“old”的行替换为“new”,并在替换行后添加新行。
sh
sed -i '/old/s/old/new /g' filename
### 示例15:替换字符串并利用条件执行操作
将文件中所有包含“old”的行替换为“new”,如果该行以“start”开头,则不执行替换。
sh
sed -i '/start/!s/old/new/g' filename
### 示例16:替换文件中的特殊字符
将文件中所有包含特殊字符“$”的行替换为“$”后跟一个空格。
sh
sed -i 's/\$/ \$/g' filename
这些示例展示了`sed`命令在文本处理中的强势功能。通过组合不同的选项和模式,你可以实现几乎任何文本替换和编辑任务。期望这些示例能帮助你更好地领会和应用`sed`命令。