next up previous contents
Next: flow control branch Up: 再進一步 Previous: 再進一步   Contents

多行處理與迴圈

在原本的h, H, g, G, x裡面都只有對單一行處理,如果pattern match要跨行 時,就捉襟見肘。下面的命令用來處理兩行以上的pattern match及pattern space, hold space的處理 Join兩行,
	/join/ {
	N
	s/\n/ /g
	}
把多行空白行幹掉成一行空白,
	/^$/ {
	N
	/^\n$/D
	}
請看,找到空白行後,把下一行加進來,如果只有一行空白,空白行與 下一行併成一行保留在pattern space,不過這時下個命令 /^\n$/D沒作用,pattern space全部送出, 如果有兩行空白,所以Delete掉第一行空白,剩下一行空白,保留下來, 這時因為D命另有作用了,所以並不送出pattern space的東西, 繼續/^$/,一直會有一行空白行留下來。這邊D與P都有迴圈的作用 ,可以拿來作重複的處理。



Cyril Huang 2002-06-14