Aduh

Awk Trim Ruang Kosong

Awk Trim Ruang Kosong
Sebagai pengaturcara, anda mungkin perlu bekerja dengan fail yang berbeza untuk menyimpan dan memanipulasi data. Satu tugas manipulasi fail asas melibatkan membuang ruang kosong dalam fail. Ruang kosong terdiri daripada ruang, garis kosong, nbsp, dan tab. Pengaturcara sering kali perlu membuang ruang kosong supaya hanya data yang diperlukan disimpan dan ruang kosong yang tidak diperlukan dapat dihapuskan. Ruang kosong boleh mendahului (di awal garisan) atau mengekori (di hujung garisan) ruang.

Berikut ini adalah beberapa senario di mana membuang ruang kosong mungkin diperlukan:

Adalah mungkin untuk membuang ruang kosong secara manual jika fail yang mengandungi hanya beberapa baris. Tetapi, untuk fail yang mengandungi beratus-ratus baris, maka sukar untuk membuang semua ruang putih secara manual. Terdapat pelbagai alat baris perintah yang tersedia untuk tujuan ini, termasuk sed, awk, cut, dan tr. Di antara alat ini, awk adalah salah satu arahan yang paling kuat.

Apa Yang Sedar?

Awk adalah bahasa skrip yang kuat dan berguna yang digunakan dalam manipulasi teks dan penghasilan laporan. Perintah awk disingkat menggunakan inisial setiap orang (Aho, Weinberger, dan Kernighan) yang mengembangkannya. Awk membolehkan anda menentukan pemboleh ubah, fungsi angka, rentetan, dan operator aritmetik; buat laporan berformat; dan banyak lagi.

Artikel ini menerangkan penggunaan perintah awk untuk memangkas ruang kosong. Setelah membaca artikel ini, anda akan belajar bagaimana menggunakan perintah awk untuk melakukan perkara berikut:

Perintah dalam artikel ini dilakukan pada Ubuntu 20.04 Sistem Focal Fossa. Walau bagaimanapun, perintah yang sama juga dapat dilakukan pada distribusi Linux yang lain. Kami akan menggunakan aplikasi Terminal Ubuntu lalai untuk menjalankan perintah dalam artikel ini. Anda boleh mengakses terminal menggunakan pintasan papan kekunci Ctrl + Alt + T.

Untuk tujuan demonstrasi, kami akan menggunakan contoh fail bernama “sample.txt."Untuk menunjukkan contoh yang diberikan dalam artikel ini.

Lihat Semua Ruang Putih dalam Fail

Untuk melihat semua ruang kosong yang terdapat dalam fail, masukkan output perintah cat ke perintah tr, seperti berikut:

$ sampel kucing.txt | tr "" "*" | tr "\ t" "&"

Perintah ini akan menggantikan semua ruang kosong dalam fail yang diberikan dengan watak (*). Setelah memasukkan arahan ini, anda akan dapat melihat dengan jelas di mana semua ruang putih (termasuk ruang kosong utama dan belakang) ada di dalam fail.

Aksara * dalam tangkapan skrin berikut menunjukkan di mana semua ruang kosong terdapat dalam fail contoh. Single * mewakili ruang kosong tunggal.

Potong Semua Ruang Putih

Untuk membuang semua ruang kosong dari fail, masukkan perintah cat out ke perintah awk, seperti berikut:

$ sampel kucing.txt | awk 'gsub (/ /, ""); cetak '

Di mana

Perintah di atas menggantikan semua ruang kosong (/ /) dengan apa-apa ("").

Dalam tangkapan skrin berikut, anda dapat melihat bahawa semua ruang putih, termasuk ruang putih utama dan belakang, telah dikeluarkan dari output.

Potong Ruang Kosong Terkemuka

Untuk membuang hanya ruang kosong utama dari fail, masukkan perintah kucing ke perintah awk, seperti berikut:

$ sampel kucing.txt | awk 'sub (/ ^ [\ t] + /, ""); cetak '

Di mana

Perintah di atas menggantikan satu atau lebih ruang di awal rentetan (^ [\ t] +) dengan apa-apa (“”) untuk membuang ruang kosong utama.

Dalam tangkapan skrin berikut, anda dapat melihat bahawa semua ruang kosong terkemuka telah dikeluarkan dari output.

Anda boleh menggunakan arahan berikut untuk mengesahkan bahawa arahan di atas telah membuang ruang kosong utama:

$ sampel kucing.txt | awk 'sub (/ ^ [\ t] + /, ""); cetak '| tr "" "*" |
tr "\ t" "&"

Dalam tangkapan skrin di bawah, dapat dilihat dengan jelas bahawa hanya ruang putih terkemuka yang telah dikeluarkan.

Potong ruang kosong

Untuk menghapus hanya ruang kosong yang tertinggal dari fail, masukkan perintah kucing ke perintah awk, seperti berikut:

$ sampel kucing.txt | awk 'sub (/ [\ t] + $ /, ""); cetak '

Di mana

Perintah di atas menggantikan satu atau lebih ruang di hujung rentetan ([\ t] + $) dengan apa-apa (“”) untuk membuang ruang kosong yang tertinggal.

Anda boleh menggunakan perintah berikut untuk mengesahkan bahawa arahan di atas telah menghapus ruang kosong yang tertinggal:

$ sampel kucing.txt | awk 'sub (/ [\ t] + $ /, ""); cetak '| tr "" "*" | tr "\ t" "&"

Dari tangkapan skrin di bawah, jelas kelihatan bahawa ruang kosong yang tertinggal telah dikeluarkan.

Potong Ruang Putih Terkemuka dan Mengikuti

Untuk mengeluarkan kedua-dua ruang kosong utama dan belakang dari fail, masukkan perintah cat out ke perintah awk, seperti berikut:

$ sampel kucing.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); cetak '

Di mana

Perintah di atas menggantikan kedua-dua ruang depan dan belakang (^ [\ t]+ [\ t] + $) tanpa apa-apa (“”) untuk menghapusnya.

Untuk menentukan sama ada arahan di atas telah membuang kedua-dua ruang kosong utama dan belakang dalam fail, gunakan arahan berikut:

$ sampel kucing.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); cetak '|
tr "" "*" | tr "\ t" "&"

Dari tangkapan skrin di bawah, dapat dilihat dengan jelas bahawa ruang putih depan dan belakang telah dikeluarkan, dan hanya ruang putih di antara rentetan yang tersisa.

Gantikan Pelbagai Ruang dengan Ruang Tunggal

Untuk mengganti beberapa ruang dengan satu ruang, letakkan perintah out of cat ke perintah awk, seperti berikut:

$ sampel kucing.txt | awk 'gsub (/ [] + /, ""); cetak '

Di mana:

Perintah di atas menggantikan beberapa ruang putih ([] +) dengan satu ruang putih (““).

Anda boleh menggunakan perintah berikut untuk mengesahkan bahawa arahan di atas telah menggantikan beberapa ruang dengan ruang kosong:

$ sampel kucing.txt | awk 'sub (/ [\ t] + $ /, ""); cetak '| | tr "" "*" | tr "\ t" "&"

Terdapat banyak ruang dalam fail sampel kami. Seperti yang anda lihat, beberapa ruang kosong dalam sampel.fail txt digantikan dengan satu ruang kosong dengan menggunakan perintah awk.

Untuk memangkas ruang putih hanya pada baris yang mengandungi watak tertentu, seperti koma, titik dua, atau titik koma, gunakan perintah awk dengan -F pemisah input.

Contohnya, ditunjukkan di bawah adalah contoh fail kami yang mengandungi ruang kosong di setiap baris.

Untuk membuang ruang kosong hanya dari garis yang mengandungi koma (,), perintahnya adalah seperti berikut:

$ kucing sampel1.txt | awk -F, '/, / gsub (/ /, ""); cetak '

Di mana (-F,) adalah pemisah medan input.

Perintah di atas hanya akan membuang dan memaparkan ruang putih dari garis yang mengandungi watak yang ditentukan (,) di dalamnya. Garis selebihnya tidak akan terjejas.

Kesimpulannya

Itu sahaja yang perlu anda ketahui untuk mengurangkan ruang kosong dalam data anda menggunakan perintah awk. Mengeluarkan ruang kosong dari data anda mungkin diperlukan kerana beberapa sebab yang berbeza. Apa pun alasannya, anda boleh memotong semua ruang kosong dalam data anda dengan mudah menggunakan perintah yang dijelaskan dalam artikel ini. Anda bahkan boleh memangkas ruang kosong yang mengarah ke depan atau yang mengekor, memangkas kedua-dua ruang kosong yang mengarah ke depan dan belakang, dan mengganti pelbagai ruang dengan satu ruang dengan arahan awk.

Cara Meningkatkan FPS di Linux?
FPS bermaksud Bingkai sesaat. Tugas FPS adalah mengukur kadar bingkai dalam pemutaran video atau persembahan permainan. Dengan kata mudah bilangan gam...
Permainan Makmal Apl Oculus Teratas
Sekiranya anda adalah pemilik alat dengar Oculus, maka anda mesti mengetahui tentang memuatkan sideload. Sideloading adalah proses memasang kandungan ...
10 Permainan Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform dominan untuk permainan kerana peratusan besar permainan yang sedang berkembang hari ini untuk meny...