Linux sed过滤器

本文概述

  • 全局替代
  • 删除一行
命令” sed” 代表流编辑器。你可以使用此命令来使用正则表达式编辑流(文件)。但是这种编辑不是永久的。它仅保留在显示中, 但实际上, 文件内容保持不变。
句法:
command | sed 's/< oldWord> /< newWord> /'

例:
echo class7 | sed 's/class/jtp/' echo class7 | sed 's/7/10/' cat msg.txt | sed 's/learn/study/'

Linux sed过滤器

文章图片
查看上面的快照, 首先我们在字符串” class7″ 上执行了” sed” 命令, 其中” class” 被更改为” jtp” , 而7变成了10。然后我们在流” msg.txt” 上执行了” sed” 命令。 ‘ , 其中” 学习” 转换为” 学习” 。
全局替代 在较早的示例中, 所有” 学习” 词均未编辑为” 研究” 。要编辑每个单词, 我们必须使用全局替换” g” 。它将编辑文件或字符串中的所有指定单词。
句法:
command | sed 's/< oldWord> /< newWord> /g'

例:
echo class7 class9 | sed 's/class/jtp/g' cat msg.txt | sed 's/learn/study/g'

Linux sed过滤器

文章图片
查看上面的快照, 使用命令” echo class7 class9 | sed’ s / class / jtp / g'” 将所有” class” 转换为” jtp” , 并使用命令” cat msg.txt | sed’ s / learn /学习/ g” ” , 所有的” 学习” 都转换为” 学习” 。
删除一行 ‘ d’ 选项可让你从文件中删除整行。你只需要使用’ d’ 选项从该行中指定一个单词, 该行将被删除。但是请注意, 所有具有相同单词的行将被删除。
句法:
cat < fileName> | sed '/< Word> /d'

例:
cat msg.txt | sed '/jtp/d'

Linux sed过滤器

文章图片
【Linux sed过滤器】查看上面的快照, 使用命令” cat msg.txt | sed’ / jtp / d'” 删除所有包含单词” jtp” 的行。

    推荐阅读