GNU/Linux >> Belajar Linux >  >> Linux

Hapus Baris Yang Mengandung String Tertentu Dan Baris Berikut?

Saya menggunakan ini

cat foo.txt | sed '/bar/d'

untuk menghapus baris yang berisi string bar dalam file.

Namun saya ingin menghapus baris tersebut dan baris tepat setelahnya . Lebih disukai di sed , awk atau alat lain yang tersedia di MinGW32.

Ini semacam kebalikan dari apa yang bisa saya dapatkan di grep dengan -A dan -B untuk mencetak garis yang cocok serta garis sebelum/sesudah garis yang cocok.

Apakah ada cara mudah untuk mencapainya?

Jawaban yang Diterima:

Jika Anda memiliki GNU sed (Linux atau Cygwin yang tidak tertanam):

sed '/bar/,+1 d'

Jika Anda memiliki bar pada dua baris berturut-turut, ini akan menghapus baris kedua tanpa menganalisisnya. Misalnya, jika Anda memiliki bar file 3-baris /bar /foo , foo garis akan tetap ada.


Linux
  1. Perintah Sed Linux:Penggunaan dan Contoh

  2. Memanipulasi teks pada baris perintah dengan sed

  3. Sed Pada Osx Masukkan Pada Garis Tertentu?

  1. Bagaimana cara menggunakan sed untuk menghapus hanya dua baris kosong?

  2. temukan teks yang cocok dan ganti baris berikutnya

  3. Linux - grep dari baris tertentu ke akhir file

  1. Belajar menggunakan editor teks Sed

  2. Hanya Mengembalikan String yang Cocok Di Sed?

  3. Dengan Perintah "kucing" Linux, Bagaimana Hanya Menampilkan Baris Tertentu Dengan Angka?