常用选项
-n
默认情况下,sed命令会将所有处理过的行都输出到标准输出,使用-n 选项后,只有被指定命令处理的行才会被输出。
-e
允许多个编辑命令被执行。例如:sed -e '命令1' -e '命令2' 文件名
-i
直接修改文件内容。例如:sed -i 's/文本1/文本2/' 文件名<br>
将文件中的 文本1 替换成 文本2 并且直接修改文件内容
-f
从文件中读取sed命令。例如:sed -f script.sed 文件名
其中script.sed 中 包含了一系列的sed 命令
常用命令
命令通常在单引号内,并以斜杠(/)分隔为三个部分:模式空间,分隔符,动作。
替换:s/匹配内容/替换文本/
例如:sed 's/good/hello/' 文件名
将文件中,所有的“good”替换为“hello"
删除:d
例如:sed 's/good/d' 文件名
将文件中,所有包含"good"的行都删除
插入:i\插入文本
例如: sed 'i\new line:' 文件名<br><br>在匹配的每一行的前面加新的一行内容:new line:
例如: sed '/charset/i\new line:' 文件名<br><br>在匹配到的charset行的前面,插入一行内容:new line:
追加:a\追加的文本
例如:sed 'a\last line' 文件名<br><br>在每一行的后面,追加一行内容:last line
例如: sed '/charset/i\last line' 文件名<br><br>在匹配到charset一行的后面,追加一行内容:last line
打印:p
例如:sed -n '/charset/p' 文件名
打印 所有包含 charset的行
读取:r 文件名
例如:sed '/charset/r newfile.txt' 文件名
在匹配到 charset 行后,添加 newfile.txt 文件内容,如果newfile.txt 文件不存在,则不添加任何内容,命令不会报错
写入:w 文件名
例如:sed -n '/pytest/w pytestfile.txt' 文件名<br>
将匹配pytest的行,写入 pytestfile.txt 文件中
替换指定行内容:Nc文本内容
例如:sed '3cnew line' 文件名
将第三行的内容,替换为 new line
N:行号,c: 新增内容