原创

Sed常用命令

Sed 常用命令

sed 命令

对文件的操作无非就是”增删改查“,怎样用 sed 命令实现对文件的”增删改查“,玩转 sed 是写自动化脚本必须的基础之一

sed 遵循简单的工作流:

读取(从输入中读取某一行) 执行(在某一行上执行 sed 命令) 显示(把结果显示在输出中)

常用参数及命令

sed [-nefri] 'command' test.txt (尽量按照标准格式使用单引号)

sed
处理文本文件,并输出到标准输出(控制台) command

-e 可以指定多个命令 a 新增

-f 指定命令文件 c 替换

-n 取消默认控制台输出,与 p 一起使用可打印指定内容 d 删除

-i 输出到原文件,静默执行(修改原文件的意思) i 插入



p 打印,要和-n 参数一起使用



s 替换(匹配局部替换)

新增 a

sed -i '2a testContent' test.txt 在第 2 行后面新增一行内容

sed -i '1,3a testContent' test.txt 在原文的第 1~3 行后面各新增一行内容

替换 c

sed -i '2c testContent' test.txt 将第 2 行内容整行替换

sed -i '1,3c testContent' test.txt 将第 1~3 行内容替换成一行指定内容

删除 d

sed '2d' test.txt 删除第 2 行

sed '1,3d' test.txt 删除第 1~3 行

插入 i

sed -i '2i testContent' test.txt 在第 2 行前面插入一行内容

sed -i '1,3i testContent' test.txt 在原文的第 1~3 行前面各插入一行内容

打印 p

sed '2p' test.txt 重复打印第 2 行

sed '1,3p' test.txt 重复打印第 1~3 行

sed -n '2p' test.txt 只打印第 2 行

sed -n '1,3p' test.txt 只打印第 1~3 行

sed -n '/user/p' test.txt 打印匹配到 user 的行,类似 grep

sed -n '/user/!p' test.txt ! 反选,打印没有匹配到 user 的行

sed -n 's/old/new/gp' test 只打印匹配替换的行

替换 s

sed -i 's/old/new/' test.txt 匹配每一行的第一个 old 替换为 new

sed -i 's/old/new/gi' test.txt 匹配所有 old 替换为 new,g 代表一行多个,i 代表匹配忽略大小写

sed -i '3,9s/old/new/gi' test.txt 匹配第 3~9 行所有 old 替换为 new

参数 -e

sed -e 's/系统/00/g' -e '2d' test.txt 执行多个指令

参数 -f

sed -f ab.log test.txt 多个命令写进 ab.log 文件里,一行一条命令,效果同-e

正文到此结束