GNU/Linux >> Belajar Linux >  >> Linux

Tutorial Unix Sed:Hapus Baris File Menggunakan Alamat dan Pola

Pada tutorial sed sebelumnya kita membahas tentang dasar-dasar perintah Unix sed dan mencetak baris dari file menggunakan alamat dan pola sed .

Dalam artikel ini, mari kita tinjau cara menghapus baris dari file menggunakan alamat dan pola dengan 8 contoh mengagumkan.

  • Perintah “p” mencetak buffer (ingat untuk menggunakan opsi -n dengan “p”)
  • Perintah “d” adalah kebalikannya, untuk menghapus. 'akan' akan menghapus buffer ruang pola dan segera memulai siklus berikutnya.
Syntax:

# sed 'ADDRESS'd filename

# sed /PATTERN/d filename

Sintaks untuk ALAMAT dan POLA yang diberikan dalam pencetakan juga berlaku untuk penghapusan, kecuali opsi -n. (-n hanya untuk menekan buffer pola pencetakan, dapat digunakan dengan perintah “p” )

Mari kita buat file geekstuff.txt terlebih dahulu yang akan digunakan dalam semua contoh yang disebutkan di bawah.

# cat thegeekstuff.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development
10.Windows- Sysadmin, reboot etc.

1. Hapus Baris Ke-N

'Nd' menghapus baris ke-N dan mencetak baris lainnya.

sed nama file 'Nd'

Sesuai metodologi sed,

  • Ia membaca baris pertama dan ditempatkan di buffer polanya.
  • Periksa apakah perintah yang diberikan benar untuk baris ini, jika benar, hapus buffer ruang pola dan mulai siklus berikutnya. yaitu Baca baris berikutnya.
  • Jika perintah yang diberikan tidak benar, sebagai perilaku normalnya ia mencetak konten buffer ruang pola.

Misalnya, 3d menghapus baris ke-3 dan mencetak baris lain seperti yang ditunjukkan di bawah ini.

$ sed 3d thegeekstuff.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development
10.Windows- Sysadmin, reboot etc.

2. Hapus Mulai dari baris ke-3 dan setiap baris ke-2 dari sana.

$ sed '3~2d' thegeekstuff.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
4. Security (Firewall, Network, Online Security etc)
6. Cool gadgets and websites
8. Website Design
10.Windows- Sysadmin, reboot etc.

3. Hapus dari baris ke-4 hingga ke-8 dari file.

$ sed '4,8d' thegeekstuff.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
3. Hardware
9. Software Development
10.Windows- Sysadmin, reboot etc.

4. Hapus baris terakhir dari input.

$ sed '$d' thegeekstuff.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development

5. Hapus baris yang cocok dengan pola yang diberikan dari input.

Misalnya, perintah di bawah ini menghapus baris yang cocok dengan “Sysadmin”.

$ sed /Sysadmin/d thegeekstuff.txt
2. Databases - Oracle, mySQL etc.
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development

6. Menghapus baris yang cocok dengan pola yang diberikan hingga akhir file.

$ sed '/Website/,$d' thegeekstuff.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)

7. Menghapus baris yang cocok dengan pola yang diberikan dan 2 baris di sebelahnya.

$ sed '/Storage/,+2d' thegeekstuff.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
3. Hardware
4. Security (Firewall, Network, Online Security etc)
8. Website Design
9. Software Development
10.Windows- Sysadmin, reboot etc.

8. Hapus Baris kosong dari file menggunakan sed

Anda juga dapat menghapus baris kosong dengan sed. Contoh sed berikut menunjukkan cara menggunakan sed dan menghapus baris kosong.

$ sed '/^$/d' thegeekstuff.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development
10.Windows- Sysadmin, reboot etc.

Linux
  1. Menggunakan sed untuk menemukan dan mengganti file teks di Linux

  2. Cetak Garis Antara (dan Tidak Termasuk) Dua Pola?

  3. Cetak Garis Antara (dan Termasuk) Dua Pola?

  1. Bagaimana Cara Menghapus Beberapa Baris Acak Dari File Teks Menggunakan Sed?

  2. Bagaimana Cara Menghapus N Baris Pertama Dari File Ascii Menggunakan Perintah Shell?

  3. Hapus baris kosong menggunakan sed

  1. Perintah unix cepat untuk menampilkan baris tertentu di tengah file?

  2. unix - kepala DAN ekor file

  3. Hapus spasi putih di setiap awal baris file, menggunakan bash