Sed Ganti Baris Baru Dengan Spasi

Sed Ganti Baris Baru Dengan Spasi



Di UNIX/Linux, perintah sed adalah alat khusus untuk mengedit aliran. Itu dapat melakukan berbagai operasi pada aliran teks, seperti mencari, menemukan dan mengganti, dan penyisipan/penghapusan. Namun, untuk sebagian besar, sed digunakan untuk menemukan dan mengganti konten teks.

Dalam panduan ini, kami akan menampilkan penggantian baris baru dengan spasi menggunakan sed.

Menggunakan sed untuk Mengganti Teks

Pertama, mari kita cepat melihat melakukan pencarian dan penggantian dasar menggunakan sed. Metode yang sama akan digunakan saat mengganti baris baru dengan spasi dengan beberapa opsi tambahan. Struktur perintahnya adalah sebagai berikut:







$ sed -e 's///'

Perhatikan perintah berikut:



$ echo 'rubah coklat cepat' | sed -e 's/cepat/cepat/g'



Perintah echo mencetak string ke STDOUT . Aliran STDOUT kemudian pipa untuk sed. Kami telah menginstruksikan sed untuk mengganti setiap instance quick untuk diganti dengan fast. Akhirnya, output dicetak di layar.





Mengganti Baris Baru Dengan Spasi

Untuk demonstrasi, saya telah membuat file teks test.txt berikut dengan beberapa konten dummy:

$cat test.txt



Perintah sed menerima ekspresi reguler untuk menggambarkan berbagai pola. Memanfaatkan fitur ini, kami akan mendeskripsikan baris baru sebagai \n. Mari kita coba mengganti baris baru dengan spasi putih:

$ sed -e 's/\n/ /g' test.txt

Namun, itu tidak berjalan seperti yang diharapkan. Untuk mencapai tujuan ini, kita memerlukan beberapa opsi tambahan. Perhatikan perintah berikut:

$ sed -e ':a;N;$!ba;s/\n/ /g' test.txt

Perintah sed memiliki beberapa bagian; masing-masing menunjukkan tugas tertentu:

  • :a: Membuat label 'a'
  • N: Menambahkan baris berikutnya ke ruang pola
  • $!ba: Jika bukan baris terakhir, kembali ke label 'a'
  • s/\n/ /g: Menemukan dan mengganti baris baru (\n) dengan spasi (/ /). Pola dicocokkan secara global (/g)

Perintah sed mengulang langkah-langkah hingga mencapai baris terakhir, mengganti semua \n karakter dengan spasi.

Alih-alih perintah kompleks ini, kita dapat menyederhanakan berbagai hal dengan menggunakan flag -z yang menentukan sed untuk bekerja dengan catatan yang dipisahkan null. Perintahnya akan terlihat seperti ini:

$ sed -z -e 's/\n/ /g' test.txt

Metode Alternatif

Sementara sed dapat melakukan tugas dengan baik, ada beberapa alat alternatif. Di bagian ini, kami akan memeriksa secara singkat beberapa di antaranya.

Untuk contoh berikut, kita dapat menggunakan perintah tr untuk mengganti baris baru dengan spasi putih secara sederhana:

$tr '\n' ' ' < test.txt

Kita juga dapat menggunakan perl untuk melakukan pekerjaan tersebut. Sintaks berikut juga mirip dengan yang kami gunakan dengan sed (tetapi disederhanakan):

$ perl -p -e 's/\n/ /' test.txt

Cara lain untuk mengganti baris baru dengan spasi adalah menggunakan perintah tempel. Perhatikan bahwa itu hanya dapat menghapus satu karakter:

$ tempel -s -d ' ' test.txt

Mirip dengan sed, Linux hadir dengan alat lain awk. Mirip dengan sed, ia juga dapat melakukan beberapa penggantian lanjutan pada input. Untuk tujuan kita, gunakan perintah awk berikut:

$ awk 1 ORS=' 'test.txt

Kesimpulan

Panduan ini mengeksplorasi bagaimana kita dapat mengganti baris baru dengan spasi menggunakan sed. Itu dicapai dengan dua cara berbeda. Panduan ini juga menyertakan alat relevan lainnya yang dapat kita gunakan untuk mengganti baris baru dengan spasi putih.

Alih-alih menggunakan perintah kompleks yang sulit dihafal, kami menggunakan skrip Bash untuk melakukan banyak hal di Linux. Meskipun datang dengan mengorbankan beberapa kinerja, fleksibilitas dan kegunaannya sepadan. Belajar lebih tentang Skrip bash untuk pemula .