Ok, sedikit terlambat menambahkan kontribusi saya, tapi saya pikir itu sepadan.
Persyaratan untuk memenuhi, per OP adalah kolom pertama yang memiliki nilai desimal .000
atau .500
hanya. Tidak ada ketentuan tentang nilai utama, baik dengan rentang atau panjang. Untuk ketahanan, tidak boleh dianggap dibatasi oleh apa pun kecuali bahwa tidak ada karakter yang tidak kosong sebelum kolom pertama (atau bukan lagi kolom pertama) dan bahwa isi kolom pertama akan memiliki titik desimal .
,, di suatu tempat.
OP ingin menggunakan grep
, yang akan mencetak seluruh baris ketika kecocokan ditemukan, jadi satu-satunya yang harus dilakukan adalah membuat pola yang cocok dengan semua dan hanya apa yang diperlukan.
Kesederhanaan itu sendiri, dan tidak ada alasan untuk menggunakan sed
atau awk
sebagai `grep dapat menangani sumber sebagai file atau pipa.
Untuk grep
menggunakan filegrep '^[^.]*\.[05]0\{2\}\s' the_file.txt
Untuk grep
dari pipa, gunakanmy_command | grep '^[^.]*\.[05]0\{2\}\s'
Polanya adalah:, ^
mulai dari awal baris; [^.]
, cocok dengan karakter non-desimal; *
, sebanyak mungkin (termasuk tidak ada); \.
, cocok dengan titik desimal; [05]
, cocok dengan lima atau nol; 0\{2\}
, cocokkan 2 angka nol lagi (backslash sebelum brace buka dan tutup mencegah shell mencoba melakukan ekspansi brace); \s
, cocok dengan karakter spasi putih (artinya bagian akhir kolom - untuk digunakan dalam kasus penggunaan yang berbeda, ganti dengan pemisah kolom, biasanya komman, semi-kolon, atau tab \t
).
Perhatikan bahwa ini akan cocok persis apa yang OP bertanya. Ini tidak akan cocok .5000
atau .0000
meskipun setara secara numerik, karena pola mencari lima atau nol, diikuti oleh tepat 2 nol lebih diikuti oleh spasi putih. Jika itu penting, maka semua jawaban lain, sejauh ini, gagal karena mereka akan cocok dengan angka nol, lebih besar dari 1, setelah angka uji. Dan kecuali untuk jawaban oleh FloHimself, mereka akan cocok dengan apa pun di kolom kedua yang dimulai .000
atau .500
, termasuk .0003
dan .500T
, dan yang oleh FloHimself akan cocok dengan apa pun yang secara matematis setara dengan .0
dan.5
, tidak peduli berapa banyak nol yang ada. Yang terakhir, meskipun tidak cocok dengan apa yang dinyatakan OP kemungkinan cocok dengan apa yang OP butuhkan.
Akhirnya, jika kekuatan, dan kecepatan, awk
diinginkan, meskipun OP meminta grep
, maka perintahnya adalah:
Dengan sebuah file awk '$1 ~ /[^.]\.[05]0{2}$/' the_file.txt
Dengan pipa my_command | awk '$1 ~ /[^.]\.[05]0{2}$/'