linux学习笔记3------shell-------sed

命令格式:sed 【选项】 ‘【动作】’ 文件名

------------------选项:------------------------------------------------------

-n sed 命令会把所有数据都输出到屏幕,此选项会将sed处理后的结果输出到屏幕。

-e 允许对输入数据应用多条sed命令编辑 ;eg:sed -e '5s/99/55g';'5d' student.txt 将第5行的99改成55,再删除第5行

-i 直接修改文件的数据

----------------------------------多行用 [ \ ]-----------------------------

多行:用[ \ ]  分割比如sed ‘2,4a drink tea or\drink beer\or drink coffee’ 在2-4行 追加3行:drink tea、 drink beer、 or drink coffee

----------------------------------多个动作用花括号 “{} ”括起来--------------------------------------------

{}里面可以有多个动作,每个动作用“;”间隔

比如sed '/root/{p;s/bash/blueshell/}'

------------------------------------------------------------

----------------------------------------------动作:-----------------------

a 追加  a前面是行数,a后面是要追加的字符,会在指定的行之后加入字符串。如3anewline 在第3行之后加入newline;

sed -i 3anewline testfile.txt

c 行替换  c前面是行数,c后面是要替换的字符,会在

i 插入 i前面是行数,i后面是要插入的字符;eg:2inewline 在第3行之前(第2行)插入newline  nl /etc/passwd | sed '3inewline'

d 删除  d之前是行数,删除无需加字符;eg:3d 删除第3行 :nl /etc/passwd |sed '3d' nl显示行号,

nl /etc/passwd | sed '2,5d' 删除 2-5行; 删除 2到最后一行($):nl /etc/passwd | sed '2,$d'

p 打印输出

s 字符串替换,格式为 行范围s/旧字符串/新字符串g

nl /etc/passwd | sed  '/root/p:

首先会将passwd输出所有行,然后还会输出匹配到/root行。

 

posted @ 2019-10-09 10:47  fangxs666  阅读(132)  评论(0编辑  收藏  举报