文本處理是我們使用linux/unix必須掌握的一項技能。
前兩篇文章介紹了如何刪除文本文件中的空行以及如何刪除文本文件中包含指定字符串的行。
本文主要介紹如何使用sed命令一次替換多個模式。
以下是測試中使用的文本文件內容,我們將使用它來演示如何使用sed命令進行字符串替換:
<code>This is a linux sed command test file. sed replace pattern. sed replace multiple patterns./<code>
在進行正式介紹之前,讓我們回顧一下如何使用sed命令進行替換模式。
sed 模式替換
在下面的示例中,我們將使用sed命令將測試文件中的“ sed”字符串替換為“ awk”。
<code>➜ ~ sed 's/sed/awk/g' text.log # OR ➜ ~ sed -e 's/sed/awk/g' text.log/<code>
以上所有方法均使用sed單模式替換。讓我們看一下如何使用sed命令進行多種模式替換。
sed 多模式替換
在以下示例中,我們將使用sed命令立即完成多模式替換,在測試中將“ sed”替換為“ awk”,將“ command”替換為“ cmd”。
<code>➜ ~ 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 /<code>
如果要直接修改文件的內容,可以使用sed -i選項。
也可以通過多個sed命令組合和linux 管道來完成用上述sed命令完成的多模式替換。
<code>➜ ~ sed 's/awk/sed/g' text.log | sed 's/command/cmd/g' /<code>