GNU/Linux >> Belajar Linux >  >> Linux

Menghapus Baris Tertentu dari File di Baris Perintah Linux

Tugasnya sederhana. Anda harus menghapus baris tertentu dari file teks di terminal Linux.

Anda dapat menggunakan editor teks seperti Vim atau Nano, masukkan file dan hapus baris yang diinginkan. Namun, pendekatan ini tidak cocok untuk otomatisasi menggunakan skrip bash.

Sebagai gantinya, Anda dapat menggunakan editor baris perintah sed yang kuat dan menghapus baris yang cocok dengan kriteria tertentu. Dan tentu saja, Anda dapat menggunakan sed di skrip shell Anda.

Mari saya tunjukkan beberapa kasus penggunaan.

️Contoh yang ditampilkan di sini akan langsung mengubah file asli. Sebaiknya buat cadangan file itu sebelum Anda mulai bereksperimen dengannya.

Hapus baris ke-n dari file

Bayangkan Anda harus menghapus nomor baris ke-7 dalam sebuah file. Anda dapat menggunakan perintah sed seperti ini:

sed -i '7d' filename

Mari saya jelaskan cara kerjanya:

  • -i :Opsi ini memungkinkan pengeditan di tempat. Secara default, sed hanya akan menampilkan output. Dengan ini -i opsi, itu memodifikasi file yang sebenarnya tanpa menampilkannya di layar.
  • 7d :Di sini 7 adalah nomor baris dan d menginstruksikan penghapusan baris.
  • filename :Ini adalah file yang ingin Anda ubah. Anda juga dapat memberikan jalur absolut atau relatif jika file berada di beberapa direktori lain.

Mari saya tunjukkan dengan contoh nyata. Berikut ini contoh file teks bernama agatha.txt:

The Mystery of the Blue Train
The Seven Dials Mystery
The Murder at the Vicarage
Giant's Bread
The Floating Admiral
The Sittaford Mystery
Peril at End House
Lord Edgware Dies

Untuk menghapus baris ke-4 dari file ini, saya menggunakan:

sed '4d' agatha.txt

Ini akan menghasilkan tampilan berikut dengan baris 'Roti Raksasa' dihapus :

The Mystery of the Blue Train
The Seven Dials Mystery
The Murder at the Vicarage
The Floating Admiral
The Sittaford Mystery
Peril at End House
Lord Edgware Dies

Sekarang, katakanlah Anda ingin menghapus baris pertama file di baris perintah Linux. Gunakan sed seperti ini:

sed -i '1d' filename
Jika Anda ingin melihat hasil manipulasi tanpa memodifikasi file itu sendiri, jangan gunakan -i pilihan perintah sed.

Hapus baris terakhir menggunakan sed

Anda belajar untuk menghapus baris tertentu tetapi bagaimana jika Anda perlu menghapus baris terakhir?

Anda mungkin selalu mendapatkan jumlah total baris dalam file menggunakan perintah wc dan menggunakan nomor ini dengan sed. Namun, sed memiliki cara khusus untuk menghapus baris terakhir file. Anda tidak perlu khawatir tentang jumlah file lagi sekarang.

sed -i '$d' filename.txt

Hapus rentang baris

Mirip dengan apa yang Anda lihat sebelumnya, Anda juga dapat menghapus rentang baris dari file.

Misalkan Anda harus menghapus baris dari 11 hingga 15, Anda dapat memberikan rentang seperti ini:

sed -i '11,15d' filename

Perhatikan bahwa itu juga akan menghapus garis 11 dan 15, bukan hanya garis yang ada di antaranya.

Hapus baris yang berisi string

Anda juga dapat menggunakan sed untuk menghapus semua baris yang berisi string tertentu atau cocok dengan pola tertentu.

Perintah di bawah ini akan menghapus semua baris yang mengandung kata 'string':

sed -i '/string/d' filename

Perhatikan bahwa ini adalah pencarian peka huruf besar/kecil. Anda juga dapat menggunakan pola regex alih-alih string biasa.

Hapus baris yang dimulai dengan kata

Jika Anda ingin menghapus semua baris yang dimulai dengan kata atau huruf tertentu, Anda hanya perlu memberikan pola regex seperti ini:

sed -i '/^word/d' filename

Kiat Bonus:Hapus semua baris kosong

Sebelum saya mengakhiri artikel ini, izinkan saya membagikan dengan cepat bagaimana Anda dapat menghapus semua baris kosong menggunakan sed:

sed -i '/^$/d' filename

Saya harap Anda menemukan tip cepat ini membantu dalam menghapus baris dari file teks di baris perintah Linux.

Jika Anda tertarik, pelajari lebih lanjut tentang editor baris perintah sed:


Linux
  1. Perintah wc Linux

  2. Cara Menghitung Jumlah Baris dalam File di Linux (Contoh Perintah wc dan nl)

  3. 7 Contoh Perintah Linux Uniq untuk Menghapus Baris Duplikat dari File

  1. Cara Menghapus File dan Direktori di Linux dari Command Line

  2. Cari Torrents Dari Command Line Di Linux

  3. Linux - grep dari baris tertentu ke akhir file

  1. Cara Memisahkan Dan Menggabungkan File Dari Baris Perintah Di Linux

  2. Menggunakan Google Drive dari Baris Perintah Linux

  3. Cara Menampilkan Baris Tertentu dari File di Baris Perintah Linux