Ketika saya menjalankan man ls > temp.txt
file teks output rusak. Maksud saya korup, huruf pertama dan terakhir dalam beberapa kata diulangi secara berlebihan.
Beberapa baris pertama di temp.txt
:
LS(1) BSD General Commands Manual LS(1)
NNAAMMEE
llss -- list directory contents
SSYYNNOOPPSSIISS
llss [--AABBCCFFGGHHLLOOPPRRSSTTUUWW@@aabbccddeeffgghhiikkllmmnnooppqqrrssttuuwwxx11] [_f_i_l_e _._._.]
DDEESSCCRRIIPPTTIIOONN
Dan seterusnya. Tanpa redirection man ls
adalah hal yang normal. Apa yang terjadi?
terminal
command-line
bash
seeker_of_bacon
sumber
sumber
less
ataumore
menampilkan format dengan benar. Jika Anda menggunakanvim
, itu akan menampilkan backspaces mentah (^H
) dengan huruf tambahan.Jawaban:
Dari
man man
:man
cetakan versi halaman buku yang diformat, garis bawah dan huruf gandadiuraikankomentar oleh MichaelT
sumber
Sekali waktu, komputer secara rutin terhubung ke teletype (teleprinters) yang akan mencetak semua teks di atas kertas secara real time saat diterima. Meskipun teleprinters tidak memiliki fasilitas untuk teks yang digarisbawahi atau dicetak tebal, mengeluarkan garis bawah, backspacing, dan mencetak sesuatu yang lain akan menyebabkan sesuatu yang lain tampak bergaris bawah. Demikian juga mengeluarkan karakter, backspacing, dan keluaran karakter yang sama akan cenderung membuat karakter tampak lebih gelap, meskipun efektivitas yang akan bervariasi tergantung pada kualitas pita yang dipasang (jika pita sudah tua dan lemah, mengetik karakter yang sama dua kali akan membuatnya secara signifikan lebih gelap; dengan pita baru mengetik karakter bahkan sekali akan mencapai mendekati kegelapan maksimum). Lebih lanjut, bahkan jika pengguna tidak terhubung ke printer,
man
ke spooler cetak akan sangat umum, yang mungkin menjelaskan mengapaman
akan berperilaku seperti itu bahkan ketika output dialihkan.BTW, pada beberapa printer (dan bahkan teleprinter), kinerja
_←U_←N_←D_←E_←R_←L_←I_←N_←I_←N_←G
akan terasa lebih buruk daripada___________←←←←←←←←←←←UNDERLINING
, karena yang pertama memerlukan printhead untuk berulang kali membalikkan arah (dan biasanya melampaui target di kedua ujungnya). Hal yang sama juga berlaku ketika menggunakan boldface multi-strike, tetapi perilaku itu sebenarnya bisa menguntungkan karena pertama kali setiap karakter dicetak akan segera mengikuti karakter backspace dan yang kedua tidak. Jika print head mengalami percepatan saat mencetak karakter pertama, itu akan menyebabkannya tidak sejajar sedikit ke yang kedua, membuat efek wajah-berani lebih efektif.sumber
Jawaban Mateusz benar, tetapi perlu menunjukkan bahwa alih-alih menghapus format yang dimaksudkan untuk tty, Anda dapat memiliki format man berbeda.
Misalnya, Anda bisa mendapatkan pdf yang diformat dengan baik dengan:
sumber
gzip -dc $(man -w ls) | groff -Thtml -mandoc -c > /tmp/man-ls.html
-t
format dengangroff -Tps ...
dan dari menjalankan string di / usr / bin / man, yang tampaknya hardcoded. Dan karena-Tps
menimpa GROFF_TYPESETTER, solusi Anda mungkin yang paling layak. Meskipun Anda kehilangan satu langkah dalam pipa Anda. Anda ingin tbl lalu groff. Cobalahman -d ls
untuk melihat pipa yang digunakannya.Sebagai alternatif, saya mendefinisikan fungsi shell berikut (dipanggil dari plugin OS X Oh-my-ZSH ):
Ini menghasilkan halaman manual yang diinginkan dibuka di Pratinjau dengan semua format cantik yang diinginkan. Cukup mudah untuk menambahkan alias tunggal ini ke Anda
~/.profile
(saya pikirpman
lebih mudah daripadaman-preview
, jadi saya sudah mengaturnyaalias pman='man-preview
di saya~/.zshrc
).PS Saya telah melihat
pman
fungsi yang didefinisikan dalam berbagai file dot di internet, Oh-my-ZSH kebetulan berada di tempat milik saya didefinisikan.sumber
Atau Anda dapat menggunakan ManOpen oleh Carl Lindberg untuk mencari dan mencetak halaman manual mana saja. ManOpen pertama kali dikembangkan untuk NeXtStep dan masih berfungsi berkat Carl.
sumber