文本处理是我们使用linux/unix必须掌握的一项技能。
前两篇文章介绍了如何删除文本文件中的空行以及如何删除文本文件中包含指定字符串的行。
本文主要介绍如何使用sed命令一次替换多个模式。
以下是测试中使用的文本文件内容,我们将使用它来演示如何使用sed命令进行字符串替换:
This is a linux sed command test file.
sed replace pattern.
sed replace multiple patterns.
在进行正式介绍之前,让我们回顾一下如何使用sed命令进行替换模式。
sed 模式替换
在下面的示例中,我们将使用sed命令将测试文件中的“ sed”字符串替换为“ awk”。
? ~ sed 's/sed/awk/g' text.log
# OR
? ~ sed -e 's/sed/awk/g' text.log
以上所有方法均使用sed单模式替换。让我们看一下如何使用sed命令进行多种模式替换。
sed 多模式替换
在以下示例中,我们将使用sed命令立即完成多模式替换,在测试中将“ sed”替换为“ awk”,将“ command”替换为“ cmd”。
? ~ sed -e 's/sed/awk/g' -e 's/command/cmd/g' text.log
# OR
? ~ sed 's/sed/awk/g;s/command/cmd/g' text.log
如果要直接修改文件的内容,可以使用sed -i选项。
也可以通过多个sed命令组合和linux 管道来完成用上述sed命令完成的多模式替换。
? ~ sed 's/awk/sed/g' text.log | sed 's/command/cmd/g'