sed(stream editor)是一个非交互式的文本编辑器,可以对文本文件进行流式操作和编辑,是在Linux和Unix操作系统上广泛使用的一种命令行工具。以下是Linux的sed命令详解大全:
1. 基本用法
sed[option]... {script-only-if-no-other-script}[input-file]...
其中,option是sed命令的选项,可以包含多个选项,script是sed的编辑脚本,可以包含多个命令,input-file是要处理的文本文件。
2. 替换文本
sed's/old/new/g'input-file
这个命令用来替换input-file文件中的所有old字符串为new字符串。其中,s表示替换操作,g表示全局替换(默认只替换第一次出现的字符串)。
3. 打印文本
sed -n'2p'input-file
这个命令用来打印input-file文件中的第二行内容。-n选项表示不打印文本文件的内容,2p表示打印第二行内容。
4. 删除行
sed'1d'input-file
这个命令用来删除input-file文件的第一行内容。其中,d表示删除操作。
插入行
sed'1i\new line'input-file
这个命令用来在input-file文件的第一行之前插入一个新行。其中,i表示插入操作,new line表示要插入的内容。
追加行
sed'$a\new line'input-file
这个命令用来在input-file文件的最后一行之后追加一个新行。其中,$表示最后一行,a表示追加操作,new line表示要追加的内容。
多条命令
pythonCopy code
sed'1d; 2s/old/new/g'input-file
这个命令用来删除input-file文件的第一行,替换input-file文件的第二行中的所有old字符串为new字符串。其中,分号用来分隔不同的命令。
正则表达式
sed'/^#/d'input-file
这个命令用来删除input-file文件中以#开头的行。其中,^表示行首,#表示#字符,d表示删除操作。
匹配文本
sed'/pattern/p'input-file
这个命令用来打印input-file文件中匹配pattern的行。其中,p表示打印操作。
多行命令
sed'/start/,/end/d'input-file
这个命令用来删除input-file文件中从start到end之间的所有行。其中,/start/和/end/是模式,d表示删除操作。
以上是Linux的sed命令的常见用法,可以满足大多数文本编辑需求。