sed命令笔记备忘

# 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 

  

posted @ 2020-04-01 18:13  韭菜茄子  阅读(111)  评论(0编辑  收藏  举报