問題
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 (バスター)
- カーネル: 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