GNU/Linux >> Belajar Linux >  >> Linux

Ubah Tab menjadi Spasi di Terminal Linux Dengan Perintah Perluas

Perdebatan tentang penggunaan tab dan spasi dalam pemrograman tidak pernah berakhir.

Meskipun Anda mungkin lebih suka menggunakan tab sepanjang waktu, kemungkinan pedoman pengkodean Anda menyarankan penggunaan spasi.

Tetapi jika Anda telah menggunakan tab di mana-mana ke dalam program Anda dan Anda perlu mengubah tab tersebut menjadi spasi sehingga peninjau mengizinkan kode Anda, Anda berada di tempat yang tepat.

Dalam tutorial ini, saya akan menunjukkan cara mengubah tab menjadi spasi dalam file teks di baris perintah Linux.

Menggunakan perintah expand untuk mengubah tab menjadi spasi di baris perintah Linux

Saya menggunakan file teks contoh ini yang merupakan program C++ sederhana untuk memeriksa angka ganjil dan genap. Ini isi filenya:

Anda dapat mengunduh file ini dari sini jika Anda ingin mempraktikkan perintah sambil mengikuti tutorial ini.

Periksa apakah file teks Anda memiliki tab

Ada beberapa cara untuk melakukannya. Metode paling sederhana yang saya temukan adalah dengan menggunakan perintah cat.

Anda dapat menggunakan perintah cat dengan opsi -T dan akan menampilkan semua tab sebagai ^I di layar (stdout).

cat -T tab_file

Anda dapat melihat lokasi tab dalam file.

#include
using namespace std;
int main()
{
^Iint n;
^Icout << “Enter a number:^I“;
^Icin >> n;
^I
^Iif (n%2 == 0) {
^I^Icout<<n<< “is an even Number”;
^I}
^Ielse
^I^Icout<<n<< “is an odd Number”;
^Ireturn 0;
}

Mengubah tab menjadi spasi dengan perintah perluas

Jika Anda menggunakan perintah expand pada file, itu akan mengubah semua tab menjadi blok 8 spasi dan akan menampilkan output di layar.

expand tab_file

Tapi itu sangat tidak nyaman, bukan? Anda hampir tidak akan melihat perubahan di sini. Ide yang lebih baik adalah menyimpan output ke file lain.

expand tab_file > space_file

Sekarang jika Anda melihat file menggunakan perintah cat, Anda tidak akan menemukan tab lagi.

Kurangi jumlah spasi

Seperti yang saya sebutkan di bagian sebelumnya, secara default, satu tab sama dengan 8 spasi. Itu akan terlihat sangat aneh jika kode Anda memiliki lekukan yang sangat besar.

Hal baiknya adalah Anda dapat mengubah ukuran ruang default dengan opsi -t.

expand -t N tab_file

Misalnya, jika Anda harus mengubah setiap tab menjadi 2 spasi, Anda dapat menggunakan perintah expand seperti ini:

expand -t2 tab_file > space_file

Ubah hanya tab awal menjadi spasi

Seringkali dalam program, Anda hanya ingin mengonversi tab utama, yaitu tab di awal baris. Anda tidak ingin menyentuh tab di antara baris yang sebenarnya merupakan bagian dari kode.

Perluas juga menyediakan opsi ini. Jika Anda hanya ingin mengubah tab utama menjadi spasi, gunakan –i opsi .

Jika kita melanjutkan contoh sebelumnya, berikut adalah tampilan perintahnya:

expand -t2 -i tab_file > space_file

Mengubah tab menjadi spasi dan menyimpannya ke file asli

Dalam semua contoh di atas, Anda telah menyimpan file yang dikonversi menjadi file baru. Tetapi jika tujuan Anda adalah untuk membersihkan kode Anda dengan mengubah tab menjadi spasi dari file program yang ada, Anda ingin output disimpan dalam file asli itu sendiri.

Untuk melakukan itu, Anda dapat menggunakan perintah sponge. Spons 'menyerap' seluruh input standar sebelum menulisnya ke output. Ini sangat berguna saat Anda mencoba mengubah dan menyimpan file yang sama.

Sekarang, perintah sponge mungkin tidak tersedia di sistem Anda. Anda harus menginstal paket moreutils. Itu harus tersedia

Pada distribusi berbasis Ubuntu/Debian, Anda dapat menggunakan perintah ini untuk menginstal moreutils:

sudo apt install moreutils

Setelah diinstal, Anda dapat menggunakannya dalam fungsi berikut:

expand -t2 -i tab_file | sponge tab_file

Mengubah tab menjadi spasi di semua file yang cocok dalam direktori

Sampai sekarang apa pun yang Anda pelajari berlaku untuk satu file. Tetapi jika Anda memiliki proyek yang memiliki beberapa file program dan Anda ingin mengubah tab menjadi spasi di semuanya, Anda harus sedikit lebih pintar di sini.

Apa yang telah kita pelajari sejauh ini dapat digabungkan dengan perintah find dan exec yang luar biasa.

find . -name '*.cpp' -type f -exec bash -c 'expand -t 4 "$0" | sponge "$0"' {} \;

Perintah di atas menemukan semua file yang diakhiri dengan ekstensi cpp, meneruskan file-file ini ke perintah expand dan perintah expand menulis output ke file asli dengan bantuan perintah sponge.

Anda mungkin berpikir menggunakan perintah sed akan lebih mudah pada saat ini, tetapi itu sepenuhnya pilihan Anda.


Linux
  1. Konversi file audio dengan perintah Linux serbaguna ini

  2. Bagaimana saya bisa mengubah spasi menjadi tab di Vim atau Linux?

  3. Bagaimana cara mengubah PDF menjadi JPG dengan baris perintah di Linux?

  1. Perintah Tee Linux dengan Contoh

  2. Linux memperluas Tutorial Perintah Untuk Pemula (dengan Contoh)

  3. Tutorial Perintah tty Linux untuk Pemula (dengan Contoh)

  1. Perintah wc Linux dengan Contoh

  2. Perintah JQ di Linux dengan Contoh

  3. 5 penggunaan perintah mv di terminal linux