shell编程----sed命令

sed命令介绍

Linux sed命令是利用脚本来处理文本文件,sed可以依照脚本的指令来处理、编辑文本文件,sed主要来自动编辑一个或者多个文件、简化对文件的反复操作、编写转换程序等。

sed命令

语法:sed [option] '{command}[flags]' [filename]

命令选项

-e script 将脚本中指定的命令添加到处理输入时执行的命令中    多条件、一行中要有多个操作

-f script   将文件中指定的命令添加到处理出入时执行的命令中

-n            抑制自动输出

-i             编辑文件内容

-i.bak       修改时同时创建.bak备份文件

-r             使用扩展的正则表达式

!               取反(跟在模式条件后与shell有所区别)

sed常用内部命令

a    在匹配后面添加

i     在匹配前面添加

p     打印

d      删除

s      查找替换

c      更改

y       转换   N D P

flags选择

数字    显示新文本替换的模式

g:        表示用新文本替换现有文本的全部实例

p:        表示打印原始的内容

w filename  将替换的结果写入文件

例子展示,数据源

shell编程----sed命令_第1张图片

1> sed 's/dog/cat/' cat.txt   将每行的第一个dog替换成cat

shell编程----sed命令_第2张图片

2> sed 's/dog/cat/2' cat.txt  将每行的第二个dog替换成cat

shell编程----sed命令_第3张图片

3> sed 's/dog/cat/g' cat.txt  将每行的所有dog替换成cat

shell编程----sed命令_第4张图片

4> sed '3s/dog/cat/p' cat.txt  将第三行打印出来

shell编程----sed命令_第5张图片

5> sed '3s/dog/cat/w mfile' cat.txt  将第三行修改过的内容保存到mfile文件中

shell编程----sed命令_第6张图片

6> sed -n '3s/dog/cat/p' cat.txt  抑制内存的输出,只打印出想要的

7> sed -e 's/brown/green/;s/dog/cat/' cat.txt  同时执行多条命令

shell编程----sed命令_第7张图片

 注意:以上替换文本的时候,源文件中的文件并没有发生实质性的替换

8> sed -i 's/dog/cat/g' cat.txt   加上-i命令选项,源文件中的文本才发生了真正的替换

shell编程----sed命令_第8张图片

9> sed -i.bak 's/dog/cat/g' cat.txt  将修改的文件备份到cat.txt.bak中,而cat.txt中没有发生变化

shell编程----sed命令_第9张图片

10> sed -n '/^(root)(.*)(bash)$/p' /etc/passwd  将/etc/passwd文件中以root开头以bash结尾的字符串打印出来

sed命令小技巧

$= 统计文本有多少行

1> sed -n '$=' cat.txt

2> sed '=' cat.txt    打印cat.txt内容的时候加上行号

shell编程----sed命令_第10张图片

学习视频:https://www.bilibili.com/video/BV1vE41127wm?p=26

你可能感兴趣的:(shell编程)