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.