Dalam tutorial hari ini tentang manajemen file Linux, kita akan melihat pendekatan yang valid untuk menggabungkan beberapa baris dalam file menjadi satu baris. Pada akhir artikel ini, Anda akan menambahkan beberapa tonggak komputasi ke pengalaman manajemen file Linux Anda.
[ Anda mungkin juga menyukai:Cara Menggabungkan Dua File Teks di Linux ]
Kemungkinan/peluang bagi pengguna yang mengeksploitasi sistem operasi Linux melalui antarmuka baris perintah terus tidak terbatas. Salah satu kemungkinan tersebut adalah memanipulasi file multi-baris menjadi file satu baris melalui serangkaian perintah Linux. Tujuan untuk menggabungkan baris tersebut dapat sesederhana kebutuhan untuk menambahkan pembatas kustom ke file yang ditargetkan.
Pernyataan Masalah
Karena tutorial ini akan berfokus pada penggabungan beberapa baris menjadi satu baris pada file yang ditargetkan, kita perlu membuat file semacam itu untuk tujuan referensi dan mengisinya dengan beberapa data multi-baris.
$ sudo nano sample_file.txt
Sesuai tangkapan layar di atas, kita berurusan dengan file (sample_file.txt ) dengan enam baris, dan ada tiga pendekatan untuk menggabungkan enam baris ini:
- Tanpa pembatas:Saya Sangat MenyukaiLinuxShellTipsTutorials!
- Dengan pembatas karakter tunggal:I Genuinely,Love,Linux.Shell,Tips,Tutorials!
- Dengan beberapa pembatas karakter:Saya Sungguh;Cinta;Linux;Shell;Tips;Tutorial!
Cara Menggabungkan Beberapa Baris Menjadi Satu Baris dalam File
Mari kita lihat tiga pendekatan ini untuk menggabungkan beberapa baris dalam file menjadi satu baris di Linux.
1. Menggunakan Perintah sed
Kekuatan sed utilitas baris perintah pemrosesan teks akan memungkinkan kita untuk menggabungkan enam baris dalam file teks sampel kita dengan menangani tiga pendekatan yang dibahas di atas dengan mengacu pada sintaks kode yang hampir sama.
Tanpa Pembatas:
$ sed ':a; N; $!ba; s/\n//g' sample_file.txt
Dengan Spasi:
$ sed ':a; N; $!ba; s/\n/ /g' sample_file.txt
Dengan Pembatas Karakter Tunggal mis. koma:
$ sed ':a; N; $!ba; s/\n/,/g' sample_file.txt
Dengan Pembatas Beberapa Karakter mis. titik koma dan spasi putih:
$ sed ':a; N; $!ba; s/\n/; /g' sample_file.txt
2. Menggunakan Perintah awk
Linux awk command adalah alat baris perintah pemrosesan teks terkemuka lainnya. Pendekatannya untuk memecahkan masalah multi-baris kami ke satu baris dapat dianalisis dan diimplementasikan dengan cara berikut:
Tanpa Pembatas:
$ awk -v d="" '{s=(NR==1?s:s d)$0}END{print s}' sample_file.txt
Dengan Spasi:
$ awk -v d=" " '{s=(NR==1?s:s d)$0}END{print s}' sample_file.txt
Dengan Pembatas Karakter Tunggal mis. koma:
$ awk -v d="," '{s=(NR==1?s:s d)$0}END{print s}' sample_file.txt
Dengan Pembatas Beberapa Karakter mis. titik koma dan spasi putih:
$ awk -v d="; " '{s=(NR==1?s:s d)$0}END{print s}' sample_file.txt
3. Menggunakan Perintah tempel
Tempel perintah hanya ideal untuk menggabungkan beberapa baris tanpa pembatas, dengan spasi, dan dengan satu karakter pembatas. Utilitas ini berada di bawah GNU Coreutils paket maka ketersediaannya di semua distribusi OS Linux.
Tanpa Pembatas:
$ paste -sd '' sample_file.txt
Dengan Spasi:
$ paste -sd ' ' sample_file.txt
Dengan Pembatas Karakter Tunggal mis. garis bawah:
$ paste -sd '_' sample_file.txt
Garis bawah di akhir (_)
dapat dihapus dengan menyalurkan perintah tempel ke perintah sed:
$ paste -sd '_' sample_file.txt | sed 's/_$/\n/'
Pendekatan ini tidak ideal dengan beberapa pembatas karakter, misalnya titik koma dan spasi putih karena keluaran tidak beraturan seperti berikut:
$ paste -sd '; ' sample_file.txt
4. Menggunakan Perintah tr
Perintah tr juga ideal untuk menggabungkan beberapa baris tanpa pembatas, dengan spasi, dan dengan satu karakter pembatas.
Tanpa Pembatas:
$ tr -d '\n' < sample_file.txt
Dengan Spasi:
$ tr '\n' ' ' < sample_file.txt
Dengan Pembatas Karakter Tunggal mis. koma:
$ tr '\n' ',' < sample_file.txt
Pipa output ke perintah sed untuk menghilangkan koma tambahan.
$ tr '\n' ',' < sample_file.txt | sed 's/,,$/\n/'
Kami telah berhasil mempelajari cara menggabungkan beberapa baris menjadi satu baris dalam satu file di Linux.