sed命令

1.d命令

命令d用于删除输入性。sed先将输入行从文件赋值到模式空间里。然后对该行运行sed命令,最后将模式空间里的内容显示在屏幕上。假设发出的是命令d。当前模式空间里的输入会被删除。不被显示。

sed '$d' datafile
#删除最后一行。其余的都被显示

sed '/my/d' datafile
#删除包括my的行,其余的都被显示

2. 基本sed编程举例

使用p(rint)显示行: sed -n '2p' temp.txt   仅仅显示第2行,使用选项n
打印范围:  sed -n '1,3p' temp.txt         打印第1行到第3行
打印模式:  sed -n '/movie/'p temp.txt     打印含movie的行
使 用模式和行号查询:  sed -n '3,/movie/'p temp.txt   仅仅在第3行查找movie并打印
显示整个文件:  sed -n '1,$'p temp.txt       $为最后一行
随意字符:  sed -n '/.*ing/'p temp.txt     注意是.*ing,而不是*ing
打印行号:  sed -e '/music/=' temp.txt
附加文本:(创建sed脚本文件)chmod u+x script.sed,运行时./script.sed temp.txt
#!/bin/sed -f
/name1/ a/             #a/表示此处换行加入文本
        HERE ADD NEW LINE.     #加入的文本内容
插入文本: /name1/ a/ 改成 4 i/ 4表示行号,i插入
改动文本: /name1/ a/ 改 成 /name1/ c/ 将改动整行,c改动
删除文本: sed '1d' temp.txt  或者 sed '1,4d' temp.txt
替 换文本: sed 's/source/OKSTR/' temp.txt     将source替换成OKSTR
sed 's//$//g' temp.txt             将文本中所有的$符号所有删除
sed 's/source/OKSTR/w temp2.txt' temp.txt 将替换后的记录写入文件temp2.txt
替换改动字符串: sed 's/source/"ADD BEFORE" &/p' temp.txt
结果将在source字符串前面加上"ADD BEFORE",这里的&表示找到的source字符并保存
sed结果写入到文件: sed '1,2 w temp2.txt' temp.txt
sed '/name/ w temp2.txt' temp.txt
从文件里读文本: sed '/name/r temp2.txt' temp.txt
在每列最后加文本: sed 's/[0-9]*/& Pass/g' temp.txt
从 shell向sed传值: echo $NAME | sed "s/go/$REP/g"   注意须要使用双引號

3.基本sed编辑命令:

p      打印匹配行                       c\    用新文本替换定位文本
=      显示文件行号                   s     使用替换模式替换对应模式
a\     在定位行号后附加新文本信息         r     从还有一个文本中读文本
i\     在定位行号后插入新文本信息         w     写文本到一个文件
d      删除定位行                       q     第一个模式匹配完毕后退出或马上退出
l       显示与八进制ASCII代码等价的控制字符   y  传送字符
n     从还有一个文本中读文本下一行,并附加在下一行   {}     在定位行运行的命令组
g     将模式2粘贴到/pattern n/

posted @ 2019-06-03 15:22  mqxnongmin  阅读(563)  评论(0编辑  收藏  举报