按控製字元解析

按控製字元解析

我正在嘗試解析期望寫入螢幕的命令的輸出。它具有透過移至原點控制序列分隔的資料(對於 VT220,ESC[1;1H)。我只需要最後一部分(即最後一次移動到原點之後)。

我嘗試過多種方法(主要是 awk 和 sed),但問題始終是控制序列的某些部分具有特殊含義(對於程序,而不僅僅是 shell),並且當我替換 tput 的輸出時我無法引用它們。

有什麼建議麼?

編輯:

這是我想要解析的範例(ESC是轉義字元):

Page 1; line 1
Page 1; line 2
ESC[1;1HPage 2; line 1
Page 2; line 2
ESC[1;1HPage 3; line 1
Page 3; line 2

我希望得到以下內容,這是程式運行後終端機上顯示的內容。

Page 3; line 1
Page 3; line 2

答案1

處理您的問題最簡單的方法:

  1. 您可以透過「uuencode -m v」或「xxd」轉換所有控制序列內容
  2. 現在您可以像往常一樣透過 awk 進行文字處理
  3. 畢竟你透過「uudecode -o -」或「xxd -revert」進行了轉換

或使用:bbe - 類似 sed 的二進位檔案編輯器

如果您需要更具體的答案,我需要更具體的程式範例

相關內容