标签:developer 模式 ram 使用 之间 清空 而不是 作用 数据
sed默认每次执行一行数据,除非使用H,G或者N等命令创建多行模式,每行之间用换行符分开。
命令N从输入文件中读取下一行并追加到模式空间,而不是替换模式空间。
小写命令n打印当前模式空间的内容,并清空模式空间,从输入文件中读取下一行到模式空间,然后继续执行后面的命令。
大写命令N不会打印模式空间的内容,也不会清除模式空间,从输入文件中读取下一行到模式空间,然后继续执行后面的命令。。
例如:
$ sed -e ‘{N;s/\n/:/}‘ empnametitle.txt
John Doe:CEO
Jason Smith:IT Manager
Raj Reddy:Sysadmin
Anadn Ram:Developer
Jane Miller:Sales Manager
小写命令p打印模式空间的内容,大写P也打印模式空间内容,直到遇到换行符\n
例如:
$ sed -n -e ‘N‘ -e ‘/Manager/P‘ empnametitle.txt
Jason Smith
Jane Miller
小写命令d会删除模式空间内容,然后读取下一条记录到模式空间,并忽略后面的命令,从头开始下一次循环
大写命令D既不会读取下一条记录,也不会完全清空模式孔家,除非模式空间只有一行。它只会:
(1)删除模式空间的部分内容,直到遇到换行符\n
(2)忽略后续命令,在当前模式空间中从头开始执行命令
命令b和:label标签
使用标签和分支命令b, 可以改变sed的执行流程:
(1):label定义一个标签
(2)b label执行该标签后面的命令,sed会跳转到该标签,然后执行后面的命令
(3)命令b后面可以不跟任何标签,这种情况下,它会直接跳到sed脚本的结尾
命令t的作用是, 如果前面的命令执行成功,那么久跳转到t指定的标签处,继续往下执行后续命令。否则,仍然继续正常的执行流程
标签:developer 模式 ram 使用 之间 清空 而不是 作用 数据
原文地址:http://www.cnblogs.com/NewMan13/p/7667901.html