Sed
使用 $ 時 sed 的奇怪行為(錯誤?)
我遇到了一個問題,我不確定這是否是一個錯誤,或者在使用 $ 定址行時是否應該發生這種情況。基本上,我有以下命令:
sed -e '$s/test/tset/g'
通常,我希望它像這樣執行:
blahblah blahblah <-- Cursor is here now
含義:我輸入一些內容並按一次 Enter,結果顯示在下一行,但是,我得到以下內容:
blahblah blahblah <-- Cursor is here now.
因此,基本上 $-symbol 似乎以某種方式導致 sed 將游標設置為空行,並且只有在我再次按 enter 後,它實際上才顯示結果(意味著:我必須按 Enter 兩次)。有什麼辦法可以防止這種情況發生,或者這可能是一個錯誤?在我更複雜的模式中,這實際上會弄亂很多東西。
因為
sed
知道它必須對最後一行輸入應用命令,所以它不能輸出最近處理的行,直到它確定它可以讀取更多行之後。您不會在不使用地址的
sed
編輯腳本中看到相同的行為,因為數據的轉換不取決於目前行是否是輸入的最後一行。$