|
这是我从sed手册上选下来的
将文件内连续的空白行 , 删除它们成为一行。其命令列为
sed -e '/^$/{
N
/^$/D
}' 文件档
其中 , 函数参数 N(参照[section4.16])表示 , 将空白行的下一行资料添加至 pattern space 内,D 表示删除 pattern space 内第一个 newline 字母 前的资料。函数参数 /^$/D 表示 ,
当添加的是空白行时 , 删除第一行空白行 , 而且剩下的空白行则再重新执行指令一次。指令重新执行一次 , 删除一行空白行 ,
如此反覆直至空白行後添加的为非空白行为止 , 故连续的空白行最後只剩一空白行被输出。
本人的试验结果:
[xiaocong@xiaocong temp]$ cat a
isadfi
sdf
sdf
sadffsa
sfs
[xiaocong@xiaocong temp]$ sed -e '/^$/{N;/^$/D}' a
isadfi
sdf
sdf
sadffsa
sfs
问三个问题:
1.该程序根本就没有工作
2.他说:“当添加的是空白行时 , 删除第一行空白行而且剩下的空白行则再重新执行指令一次。” 哪里说明 重新执行指令一次?难道是D?
3.是不是每一行读到pattern里的格式都是
还是$在前\n在后
|
|