sed的工作模式
基础介绍 sed(Stream Editor) 流编辑器. 对标准输出或文件逐行进行处理
语法格式
第一种
stdout | sed [option] "pattern command"
第二种
sed [options] "pattern command" file
set的选项
选项 含义
-n 只打印模式匹配
-e 直接在命令行进行sed编辑,默然选项
-f 编辑动作保存在文件中,指定文件执行
-r 支持拓展正则表达式
-i 直接修改文件内容
-p再次输出命令
$ sed 'p' sed.txt
i love python
i love python
I love PYTHON
I love PYTHON
hoodep
hoodep
-n 只打印匹配模式
$sed -n 'p' sed.txt
i love python
I love PYTHON
hoodep
'/python/' 为固定模式
$ sed -n '/python/p' sed.txt
i love python
-e 多个命令执行
$ sed -n -e '/python/p' -e '/PYTHON/p' sed.txt
i love python
I love PYTHON
-f 执行edit.sed中的文本命令
$ sed -n -f edit.sed sed.txt
-r 支持拓展表达式
$ sed -n '/python\|PYTHON/p' sed.txt
i love python
I love PYTHON
$ sed -n -r '/python|PYTHON/p' sed.txt
i love python
I love PYTHON
-i 直接修改文件内容 ,不带-i直接修改输出内容
$ sed -n 's/love/like/g;p' sed.txt
i like python
I like PYTHON
hoodep
$ sed -n -i 's/love/like/g;p' sed.txt
$ cat sed.txt
i like python
I like PYTHON
hoodep
sed中的pattern详解
pattern用法表
匹配模式 含义
10command 匹配到第10行
10,20command 匹配从第10行开始到,到20行结束
10,+5command 匹配从第10行开始到,到16行结束
/pattern1/command 匹配到pattern1的行
/pattern1/,/pattern2/command 匹配到pattern1的开始 到匹配到pattern2的行结束
10,/pattern1/command 匹配从第10行开始,匹配到pattern1的行结束
/pattern1/,10command 匹配到的pattern1的行开始,到第10行匹配结束
打印指定行
$ sed -n 2p sed.txt
I like PYTHON
打印一定范围的行
sed -n '3,4p' sed.txt
hoodep
/pattern1/command 正则匹配模式
$ sed -n '/^root/p' /etc/passwd
root:x:0:0:root:/root:/bin/bash
/pattern1/,/pattern2/command
$ sed -n '/^root/,/^chencl/p' /etc/passwd
root:x:0:0:root:/root:/bin/bash
...........
chencl:x:1000:1000:chencl,,,:/home/chencl:/bin/bash