GNU/Linux >> Belajar Linux >  >> Linux

Sed:Cetak Hanya Kejadian Pertama Dari Kecocokan Pola?

Pertanyaan ini sudah memiliki jawaban di sini :Cara memilih kemunculan pertama di antara dua pola termasuk mereka

(7 jawaban)
Tutup 4 tahun yang lalu.

Beberapa pertanyaan serupa dengan yang ini, tetapi saya belum menemukan solusi yang berfungsi ketika saya ingin mencari pola pada beberapa baris. Berikut

sed -n '/First string/,/Second string/ p' my.file

akan mencetak semua kemunculan pola yang cocok, tetapi saya hanya ingin kemunculan pertama. Saya menggunakan GNU sed.

Jawaban yang Diterima:

Gunakan q untuk berhenti secara eksplisit saat pola akhir tercapai.

Di GNU sed:

$ cat foo
foo
START
bar
END
blah
START another

$ sed -n '/START/,/END/p; /END/q' foo
START
bar
END

awk mungkin akan lebih mudah untuk tidak mengulangi pola akhir:

$ awk '/START/{p=1} p; /END/{exit}' foo
START
bar
END

Linux
  1. Cetak Baris Sebelumnya Setelah Pencocokan Pola Menggunakan Sed?

  2. Tampilkan Semua File Hingga Pertandingan?

  3. Pertahankan Hanya Baris Pertama Dari Setiap Urutan Garis Berturut-turut yang Cocok dengan Pola?

  1. Bungkus Karakter Pertama Dari Sebuah String Menggunakan Sed?

  2. Cetak file, lewati baris X pertama, di Bash

  3. Kembalikan kode sed jika tidak cocok

  1. Filter Rsync:Menyalin Satu Pola Saja?

  2. Pencocokan Pola Multiline Menggunakan Sed, Awk Atau Grep?

  3. Menggunakan sed untuk mengganti antara pola tertentu