sed多行命令和循环,默认情况下sed命令是单行处理
46. Append Next Line to Pattern Space (N command)
在同一行输出行号
|
|
n与N;2n与2N差异化研究
####
下面例子显示结果是在第2N遍执行sed-command里面的2N
命令;在第N遍则不执行
推论:如为3N
则第3N遍执行.
而n
参数是输出最后一行
步骤分析
47. Print 1st Line in MultiLine (P command)
输出多行的第一行。P
命令为输出模式空间,直到遇到一个\n
符号,
所以如果模式空间里有多个\n
换行符(比如有个N
命令),则只输出第一行。
48. Delete 1st Line in MultiLine (D command)
删除多行的第一行
49. Loop and Branch (b command and :label)
循环和分支
b命令打上标签label,然后:label为锚点,跳到指定标签位:label处执行
50. Loop Using t command
循环使用t
命令
下面一小段代码是循环的
123:repeat/Manager/ s/^/*//\*\*\*/!t repeat:repeat
:这个是标签/Manager/ s/^/*/
: 匹配Manager行,在行首加一个*号/\*\*\*/!t repeat
:判断如果上一句执行成功,并且不是***
则跳到标签repeat继续执行