sed命令

sed命令

# sed [参数] ‘<条件>’ <文件名>

[参数]

-n  不再显示模式空间里的内容(默认是显示的)

-i  直接修改源文件

-e  同时执行多个匹配操作

-r  表示执行正则扩展

-f   读取预先编写好的流处理文件(每个操作独占一行)

例如:sed -f /tmp/1.txt /etc/fstab

<条件>

01---(d:删除某一行)

02---(p:显示某一行)

03---(a:在后面追加一行)

04---(i:在前面追加一行)

05---(c:替换某一行内容)

06---(=:显示行号)

07---(s/查找内容/替换内容/[修饰符]:查找并替换)

08---(r   file:将fileli的内容添加到符合条件的行后面)

09---(w  file:将匹配后的内容写入到file文件内)

示例:

01---(d:删除某一行)

删除第5行

sed '5d' /test/aaa.txt  

02---(p:显示某一行)

显示“任意字符开头”的行

sed '/^./p' /test/aaa.txt   

03---(a:在后面追加一行)

在“符合条件的行后面追加新行”

sed '/^abc/a \Hello word' /test/aaa.txt  

04---(i:在前面追加一行)

在“符合条件的行前面追加新行”

sed '/^abc/i \Hello word' /test/aaa.txt  

05---(c:替换某一行内容)

替换“第7行的内容为:Hello word"

sed '7c \Hello word' /test/aaa.txt  

06---(=:显示行号)

显示最后一行的行号

sed '$=' /test/aaa.txt  

07---(s/查找内容/替换内容/[修饰符]:查找并替换)

查找每一行中的abc并替换为ccc

sed 's/abc/ccc/[修饰符]' /test/aaa.txt  

[修饰符]:
          g:替换每一行所有的字符
           i:忽略大小写

[补充]:默认只替换每行第一次匹配到的字符

08---(r   file:将fileli的内容添加到符合条件的行后面)

在文件的第n行后追加文件里的内容

sed '2r /etc/abc.txt' /test/aaa.txt 

09---(w   file:将匹配后的内容写入到file文件内)

将符合条件的内容,另存到file文件中

sed '/^abc/w /etc/abc.txt' /test/aaa.txt   

你可能感兴趣的:(sed命令)