Sed e'/test/h' e'$g,file是什麼意思

sed 是一個流編輯器,它允許你編輯文本檔案的一行或多行。在 sed 中,e 命令用於執行外部命令,h 命令用於將當前 pattern space(模式空間,即當前正在處理的行)的內容複製到 hold space(保持空間),$ 表示檔案的最後一行,g 命令用於將 hold space 的內容複製回 pattern space。

所以,sed e'/test/h' e'$g,file是什麼意思 這個命令的意思是:

  1. 使用 e 命令執行外部命令 /test/h,這個命令會查找包含 test 的行,並將該行的內容複製到 hold space。
  2. 使用 e 命令執行外部命令 $g,這個命令會將 hold space 的內容複製回 pattern space,並確保它是最新的(即覆蓋任何以前的模式空間內容)。
  3. 由於 file 沒有指定,我們可以假設 sed 應該在標準輸入上操作,所以 sed 會讀取標準輸入直到最後一行,然後執行上述操作。

然而,這個命令看起來並不是一個有效的 sed 命令,因為它沒有指定任何檔案名稱或輸入流。如果你想要在檔案中查找包含 test 的行,並將最後一行複製到 hold space,然後列印出來,你可以使用以下命令:

sed -n '/test/h;$!d;x;p' file

這個命令的意思是:

請注意,這個命令假設 file 是存在的,並且包含一些文本。如果你想要在標準輸入上操作,你可以使用 - 作為檔案名稱,例如:

sed -n '/test/h;$!d;x;p' -

這將讀取標準輸入,查找包含 test 的行,並將最後一行列印出來。