sed

Posted guxuanqing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed相关的知识,希望对你有一定的参考价值。

linuxdic

cdf ds

 

 

#!/bin/bash
#2018-06-30 06:59:38
# sed Stream Editor文本流编辑
#sed命令的语法格式:
#sed的命令格式: sed [option] sed command filename
#sed的脚本格式:sed [option] -f sed script filename

#sed命令的选项(option):
#-n :只打印模式匹配的行.
#-e :直接在命令行模式上进行sed动作编辑,此为默认选项
#-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作
#-r :支持扩展表达式((默认是基础正规表示法语法))
#-i :直接修改文件内容,而不是输出到终端。

#sed command: [n1[,n2]]function
#n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 1020 行之间进行的,则『 10,20[动作行为] 』
#function:
#a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~(可以理解为append)
#i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
#c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
#d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
#p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~,即只打印匹配的行.
#s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

#  sed 后面接的动作,请务必以 ‘‘ 两个单引号括住喔!
echo "删除第二行到第4行."
nl ips.txt | sed 2,4d | head -n 5

echo "删除第二行到最后一行"
nl ips.txt | sed 2,$d | head -n 5

echo "删除第4行.如果4行是空的,会往后找到非空行,补充到第4行."
nl ips.txt | sed 4d | head -n 5

echo "在第二行后(亦即是加在第三行)加上『drink tea?』字样!"
nl ips.txt | sed 2a drink tea | head -n 5

echo "要在第二行前"
nl ips.txt | sed 2i drink tea | head -n 5
 
 echo "如果是要增加两行以上,在第二行后面加入两行字,例如『Drink tea or .....』与『drink beer?』"
 echo "每一行之间都必须要以反斜杠『  』来进行新行的添加喔"
 nl ips.txt | sed 2a Drink tea or .....
drink beer? | head -n 5


 

 

以上是关于sed的主要内容,如果未能解决你的问题,请参考以下文章

将 SED 命令转换为 linux 命令

sed命令取消注释代码行

Sed - 查找和替换 html 代码中的文本(从一种语言到另一种语言)

使用 sed 或 awk 预处理 C/C++ 代码时如何定位可靠的函数?

sed 删除

微信小程序代码片段