Linux三剑客之sed命令详解(Linux命令sed用法)

sed(stream editor,流编辑器)是一个在Linux和类Unix系统中非常强大的文本处理工具。

sed主要用于对文本文件(或流)进行基本的文本转换,如查找和替换、插入和删除操作。

它以非交互方式工作,因此尤其适合用于脚本和批处理任务。

图片[1]-Linux三剑客之sed命令详解(Linux命令sed用法)-不念博客

以下是sed命令的语法和一些实用示例。

语法:

sed [选项] 'command' file

sed命令的核心是command,它定义了要在文本上执行的操作。可以在一个sed命令中使用多个命令,命令之间用分号隔开。

常用选项:

  • -n:安静模式,只打印被命令处理过的行。
  • -i:直接编辑文件,而不是将结果输出到标准输出。
  • -e:允许在一个sed命令中使用多个表达式,每个表达式前需要加-e
  • -f:从指定的文件中读取sed脚本。

常用命令:

  • s/old/new/:将第一个匹配到的old替换为new
  • s/old/new/g:将所有匹配到的old替换为new
  • p:打印行。
  • d:删除行。
  • a\text:在当前行后追加文本。
  • i\text:在当前行前插入文本。

实用示例:

  1. 将文件中所有的”apple”替换为”orange”:
sed 's/apple/orange/g' file.txt
  1. 删除文件中包含”example”的行:
sed '/example/d' file.txt
  1. 只打印文件中包含”example”的行:
sed -n '/example/p' file.txt
  1. 在文件中的每一行末尾添加逗号:
sed 's/$/,/' file.txt
  1. 在文件中的每一行开头添加行号:
sed '=' file.txt | sed 'N; s/\n/. /'
  1. 删除文件中的空白行:
sed '/^$/d' file.txt
  1. 将文件中的多个空格替换为一个空格:
sed 's/  */ /g' file.txt

这些示例仅涵盖了sed命令的一部分功能。sed是一个非常强大的工具,可以解决许多文本处理问题。要深入了解sed,请阅读相关文档和手册。

© 版权声明
THE END