grep --before-context 5
menunjukkan 5 baris sebelum pertandingan.
Saya ingin menunjukkan semuanya sebelum pertandingan.
Melakukan grep --before-context 99999999
akan bekerja tetapi tidak terlalu… profesional.
Bagaimana cara menampilkan semua file yang cocok?
Jawaban yang Diterima:
Sed lebih baik untuk itu.
Lakukan saja:
sed '/PATTERN/q' FILE
Ini bekerja seperti ini:
Untuk setiap baris, kita lihat apakah cocok dengan /PATTERN
:
- jika ya, kami mencetaknya dan keluar
- jika tidak, kami akan mencetaknya
Ini adalah solusi yang paling efisien, karena begitu melihat PATTERN
, itu berhenti. Tanpa q
, sed akan terus membaca sisa file, dan tidak melakukan apa pun dengannya. Untuk file besar, ini bisa membuat perbedaan.
Trik ini juga bisa digunakan untuk meniru head
:
sed 10q FILE
Bagaimana Mengenalinya Jika Sebuah File Sedang Diunduh Oleh Wget?
Bagaimana Cara Grep Garis Yang Tidak Dimulai Dengan "#" Atau ";"?