Ketika saya berada di vim
saya bisa mengubah ukuran tab dengan perintah berikut:
:set ts=4
Apakah mungkin untuk mengatur ukuran tab untuk cat
output perintah juga?
cat
indentation
Meysam
sumber
sumber
expand
(dari paket coreutils) dantabs
(dari paket ncurses) perintah, (2). dan arti dari ts adalah [ T ] ab [ S ] topCukup gunakan kode berikut:
Di mana n adalah jumlah spasi yang Anda inginkan untuk berhubungan dengan tab juga. Agar tidak harus melakukan ini setiap kali Anda memulai shell, hanya mengedit Anda
.bash_profile
di~/
dan menambahkan baris di atas ke akhir file.Untuk info lebih lanjut tentang perintah tab, lihat:
sumber
ls
put out mungkin terlihat tidak selaras dengan benar).Tidak ada gagasan tentang tab atau berhenti di tab
cat
; program hanya menyalurkan input ke output dan memperlakukan tab seperti karakter lainnya. Jika perangkat output kebetulan merupakan terminal, tab akan ditangani sesuai dengan perilaku terminal yang dikonfigurasi untuk menyediakan.Sistem yang mengimplementasikan POSIX.1 memiliki perintah yang disebut
tabs(1)
yang akan menyesuaikan konsep terminal tentang bagaimana tab harus ditampilkan. Tergantung pada tata letak tab tertentu tidak dianggap sebagai ide yang baik, karena seseorang dapat mengirim file Anda ke beberapa perangkat lain seperti printer yang tidak akan melakukan apa yang Anda inginkan.Ketika Anda menyesuaikan
ts
divim
(atau polosvi
), semua yang Anda lakukan adalah menyesuaikan bagaimana editor menafsirkan karakter tab ketika ditampilkan. Tidak ada hubungannya dengan apa yang berakhir di file.sumber
Berdasarkan jawaban dan contoh di atas, tampaknya perintah aktual yang diinginkan OP adalah ...
cat somefile | expand -t4
Ini bekerja untuk saya di Red Hat 6.4.
sumber
Untuk memperluas jawaban yang sudah diberikan,
expand
dapat juga mengambil daftar posisi berhenti tab. Ini berguna jika panjang konten kolom beragam bervariasi.Saya memenuhi persyaratan ini hari ini ketika saya ingin membuat hasil yang
openssl ciphers
lebih mudah dibaca:Menggunakan hanya
expand -t31
akan meledakkan lebar output dari sekitar 100 karakter menjadi lebih dari 160 karakter.sumber
column
:openssl ciphers -v 'HIGH' | column -t
Banyak terminal mendukung pengaturan variabel berhenti tab. Mereka yang vt100, linux dan atau mendukung standar EMCA-48 lakukan, sebagian besar istilah pada pengaturan dukungan linux ukuran tab: xterm dan keluarga (uxterm, urxvt) xfce4-terminal, luit, Terminal, SecureTTY, antara lain.
Jadi menulis skrip beberapa tahun yang lalu untuk mengatur tab saya saat login ke setiap 2 spasi - dulu menggunakan 4, lalu 3 untuk sedikit pendek, dan sekarang pada 2 ....
Jadi sekarang, jika saya 'menyimpan' file, tab dalam file tersebut akan meluas ke pengaturan terminal saya.
Jika saya melewati vim atau lebih, mereka melakukan ekspansi tab sendiri, tetapi banyak utilitas menggunakan tab.
Akan menyertakan skrip di sini untuk referensi, dan atau penggunaan pribadi:
Semoga ini bisa membantu ...
sumber
Menurut halaman manual, kucing tidak bisa melakukannya sendiri. Tetapi Anda dapat misalnya menjalankan output dari cat through
tr
filter untuk mengganti tab dengan sejumlah ruang yang Anda inginkan:akan mengganti karakter tab dengan dua spasi.
Perbarui: seperti yang ditunjukkan dalam komentar untuk posting ini, ini sebenarnya tidak berfungsi. Meskipun demikian, saya menyimpan jawabannya sebagai contoh bagaimana tidak melakukannya.
sumber
'\t'
dengan hanya satu ruang, tidak peduli berapa banyak ruang di antara pasangan kutipan kedua' '
tr
tidak bekerja seperti itu .. setiap byte dari arg 1 diganti oleh masing-masing byte yang sesuai dari arg 2 ..... Oleh karena ituprintf '\t' |tr '\t' 'ळ'
mencetak byte tunggal yang nilai hex-nya adalah\xE0
.. yang merupakan byte pertama dari tiga UTF-8 byte yang dikodekan yang membentuk karakterळ
(yang nilai Unicode CodePointnya adalah U + 0933)