GNU/Linux >> Belajar Linux >  >> Linux

Grep Untuk Garis Yang Hanya Berisi 5 Atau 6 Angka?

Bagaimana Anda memahami baris yang hanya berisi 5 atau 6 angka? Sesuatu seperti ini.

kasus 1 (memiliki spasi awal)

           10      2       12      1       13

kasus 2 (tanpa spasi)

   1       2       3       4       5        6

Saya pikir sesuatu seperti ini akan berhasil.

grep -E '[0-9]{5}'

Jawaban yang Diterima:

grep -E '[0-9]{5}' sedang mencari angka dengan minimal 5 digit. Yang Anda butuhkan adalah 5 angka dengan setidaknya satu digit:

grep -E '[0-9]+([^0-9]+[0-9]+){4}'
  • [0-9]+ – sejumlah minimal satu digit
  • [^0-9]+[0-9]+ – angka dengan setidaknya satu digit, didahului oleh setidaknya satu karakter non-digit. Kami kemudian mengulangi ini 4 kali untuk mendapatkan 5 angka yang dipisahkan oleh non-digit.
  • Jika persyaratannya tepat 5, Anda mungkin ingin mengapit regex ini dengan [^0-9] sehingga seluruh baris cocok (dengan jangkar, tentu saja).
  • Tergantung pada apa yang Anda inginkan di sini (tidak 1,2,3,4,6 memenuhi syarat?), Anda dapat melihat pemisah lainnya. Misalnya, notasi ilmiah bilangan real yang tepat akan terlihat seperti:[+-]?(([0-9]+(.[0-9]+)?)|([0-9]?.[0-9]+))([eE][+-][0-9]+)? Jadi pemisah tidak boleh menyertakan . , e , dll. Mereka hanya boleh berupa spasi putih, seperti mikeserv catatan. Atau mungkin koma, jika itu adalah data CSV. Atau tergantung pada lokal, koma akan menjadi pemisah desimal. Variasikan [^0-9] sesuai kebutuhan Anda.

Linux
  1. Regex (grep) untuk pencarian multi-baris diperlukan

  2. Sejarah Bash tanpa nomor baris

  3. Bagaimana cara membuat GREP hanya memilih nilai numerik?

  1. Linux – Bagaimana Cara Mendapatkan Kata Tertentu Dan Mengambil Teks?

  2. baris perintah linux:du --- cara membuatnya hanya menampilkan total untuk setiap direktori

  3. grep tanpa menunjukkan path/file:line

  1. Menemukan Item Terakhir Dalam Baris Menggunakan Grep?

  2. Bagaimana cara menampilkan nomor baris di vi/vim?

  3. 10 Contoh Perintah Grep Praktis untuk Pengembang