模式空间:可以想成工程里面的流水线,数据之间在它上面进行处理。
保持空间:可以想象成仓库,我们在进行数据处理的时候,作为数据的暂存区域。
正常情况下,如果不显示使用某些高级命令,保持空间不会使用到!
最一開始,pattern space和hold space是空的。
接著開始循環。
1. sed一次從檔案取出一行,刪除結尾的 \n,再放到 pattern space。
2. 比對address或command s 的pattern,如果比對正確才會執行command。
如果比對失敗跳到步驟 4。
3. 對 pattern space 的文字執行 command,並將結果存回pattern space。
如果有多個command,依序執行直到全部command都結束。
4. 將執行完 command 的pattern space送到 stdout,也就是螢幕。
5. 清空 pattern space。
讀取下一行文字,重覆第一步,一直循環到最後一行結束。
整個循環不會清除hold space裡面的文字。