# s命令会用斜线间指定的第二个文本字符串来替换第 一个文本字符串模式
echo "hello world" | sed 's/world/leyi/'
# hello leyi
# 要在sed命令行上执行多个命令时,只要用-e选项就可以了
sed 's/hello/nihao/; s/world/leyi/' 1.txt
#如果有大量要处理的sed命令,那么将它们放进一个单独的文件中通常会更方便一些。 可以在# sed命令中用-f选项来指定文件
$ cat test.sed
s/hello/nihao/
s/world/leyi/
sed -f test.sed 1.txt
nihao leyi
nihao leyi
nihao leyi
nihao leyi
a:追加 向匹配行后面插入内容 macOs下 需要在换行加反斜杠
# 行尾添加字符
sed “/$/a \\
big world" 1.txt
# 在带有world的行后添加nihai leyi
sed "/world/a \\
nihao leyi" 1.txt
# 在第二行后添加nihai leyi
sed "2a \\
nihao leyi" 1.txt
c:更改 更改匹配行的内容
# 匹配带world的行然后整行替换成big world
sed -i '' "/world/c \\
big world" 1.txt
i:插入 向匹配行前插入内容 和-i 不同
# -i:直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改
# 在匹配的world行前插入big world
sed -i '' "/world/i \\
big world" 1.txt
d:删除 删除匹配的内容
# 删除带world的行
sed -i '' "/world/d " 1.txt
# 删除空行
sed -i '' "/^$/d " 1.txt
# 删除1至2行
sed -i '' "1,2d " 1.txt
# 删除2至最后一行
sed -i '' “2,$d " 1.txt
?
p :显示,将某个选择的数据打印显示。通常 p 会与参数 sed -n 一起执行
# 显示带world的行等同 grep 'world' -r 1.txt
sed -n '/world/p' 1.txt
# 显示第一行等同 head -n 1 1.txt
sed -n '1p' 1.txt
# 显示第最后一行等同 tail -n 1 1.txt
sed -n '$p' 1.txt