問題
我想將 tldr 的輸出複製到剪貼簿,然後將其貼上到文字編輯器。
我執行:tldr pwd | xclip -sel clip
當我從剪貼簿貼上時,我得到:
pwd
[0mPrint name of current/working directory.More information: https://www.gnu.org/software/coreutils/pwd.
- [23;22;24;25;32mPrint the current directory:
[23;22;24;25;33m pwd
[0m
- [23;22;24;25;32mPrint the current directory, and resolve all symlinks (i.e. show the "physical" path):
[23;22;24;25;33m pwd -P
[0m[0m
我想擺脫時間戳,也想知道為什麼會發生這種事。
觀察
tldr pwd
(不傳遞到 xclip)不顯示時間戳man pwd | xclip -sel clip
貼上時不包含時間戳- 所以,只有當將 tldr 傳遞給 xclip 時,我才會發現這種情況發生
- 時間戳看起來像轉義碼
環境
- 靜態主機名稱:debian
- 圖示名稱:電腦桌面
- 機殼: 桌上型
- 作業系統:Debian GNU/Linux 10 (buster)
- 核心:Linux 4.19.0-17-amd64
- 架構:x86-64
答案1
這些不是時間戳。它們是顏色代碼。
根據v0.91 變更日誌,tldr
在 2021 年 7 月合併了一項禁用顏色的功能,可以透過設定NO_COLOR
環境變數或使用新的--no-color
命令列選項。
不幸的是,v0.91tldr
是很多比 Debian 目前版本 (0.6.4) 更新......因此,要么卸載 Debian 軟體包並自行編譯/安裝它(*),要么提交錯誤報告,要求打包新版本。或兩者。
這才是長期的解決方案。在短期內,使用sed
或某種方法從輸出中刪除顏色代碼(如 @GMaster 的答案)可能是最好的選擇。
(*) 我通常不會建議從程式的打包版本切換到自編譯版本(因為這樣做可能會導致兼容性問題或將來的升級問題),但是硬編碼的顏色代碼可以'不被禁用是UI 令人厭惡的。
答案2
這些是由 產生的顏色代碼tldr
。不幸的tldr
是沒有任何關閉顏色的選項。但您可以傳遞tldr
輸出sed
並去掉顏色代碼。嘗試這個:
tldr pwd | sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g' | xclip -sel clip
或者,基於提到的 jpa 套件:
# install colorized-logs package (for ubuntu)
sudo apt install colorized-logs
tldr pwd | ansi2txt | xclip -sel clip