GNU/Linux >> Belajar Linux >  >> Linux

Mengapa dentang menghasilkan teks yang tidak dapat dipahami saat dialihkan?

Ini tidak ada hubungannya dengan codepages/encoding. Output Anda bukan teks biasa. Ini berisi urutan seperti [0;1;32m . String ini (ada, tidak ditampilkan, [escape] karakter juga sebelum masing-masing) adalah instruksi ke terminal untuk menampilkan teks tebal, miring, dalam berbagai warna, dll. Ini menghasilkan output yang lebih mudah dibaca, jika terminal Anda mendukungnya.

Seharusnya ada opsi untuk memberi tahu dentang agar tidak mencoba mempercantik keluaran, tetapi gunakan teks biasa. Periksa manualnya. (Saya tidak punya satu pun, jadi saya tidak bisa memberi tahu Anda apa perintah yang tepat.)


Alternatifnya, alih-alih menghapus warna dari keluaran, Anda dapat melihat keluaran berwarna di terminal Anda dengan menggunakan opsi mentah less

less -r output.txt

Karakter tersebut, seperti [0;33m terlihat seperti kontrol keluaran terminal bagi saya. Itu adalah bagian dari serangkaian escape sequence yang sering digunakan untuk menerapkan warna pada teks di terminal. Dalam keadaan mentahnya seperti ini juga sering digunakan untuk menerapkan warna ke bash prompt itu sendiri - Inilah yang saya gunakan di .bashrc selama bertahun-tahun di semua mesin saya:

export PS1='\[\033[1;33m\]\u\[\033[1;35m\]@\[\033[1;32m\]\h\[\033[0;36m\]\w\[\033[1;37m\]\$ \[\033[0;37m\]'

(Kebanyakan berpikir itu jelek, tapi saya menyukainya).

Lihat apakah Anda dapat menemukan sakelar untuk menghapus kode warna apa pun atau sejenisnya dari output perintah Anda dan lihat apakah itu membantu.


Linux
  1. Bagaimana Suatu Program Memutuskan Apakah Memiliki Output Berwarna atau Tidak?

  2. Ssh – Bagaimana Ssh Meminta Kata Sandi Saat Semua Input dan Output Dialihkan?

  3. “ekor -f | Iconv -fsjis” Tidak Mengeluarkan Apa Pun?

  1. Mengapa Ls -l Menghasilkan Ukuran Yang Berbeda Dari Ls -s?

  2. Bagaimana cara menampilkan teks berwarna ke terminal Linux?

  3. Mengapa Linux selalu menampilkan ^C setelah menekan Ctrl+C?

  1. Mengapa stdout perlu pembilasan eksplisit saat dialihkan ke file?

  2. Mengapa dentang masih membutuhkan libgcc.a untuk mengkompilasi kode saya?

  3. Mengapa rsync tidak menggunakan delta-transfer untuk file lokal?