Tamam, katkılarımı biraz geç ekleyerek, ama buna değer olduğunu düşünüyorum.
OP'ye uygunluk gereksinimi, ondalık değere sahip .000veya .500yalnızca ondalık değere sahip ilk sütundur . Önde gelen değerle ilgili olarak, aralık veya uzunluk olarak herhangi bir koşul yoktur. Sağlamlık için ilk sütunda önce hiçbir olmayan boş karakterler (veya artık birinci sütun var) ve orada olması dışında herhangi bir şey tarafından kontrol altında tutulması kabul edilmemelidir ilk sütunun içeriği bu olacak ondalık noktası, ., bir yerde.
OP kullanmak istiyor grep, bir eşleşme bulunduğunda tüm satırı yazdıracak, bu yüzden yapılacak tek şey, hepsine uyan deseni ve sadece gerekli olanı oluşturmak .
Sadelik kendisi ve hiçbir neden kullanmak sedveya awkolarak `grep bir dosya veya bir boru gibi kaynağını işleyebilir.
To grepdosya kullanımıgrep '^[^.]*\.[05]0\{2\}\s' the_file.txt
İçin grepbir boru, kullanımdanmy_command | grep '^[^.]*\.[05]0\{2\}\s'
Desen:, ^satırın başından başlar; [^.], ondalık olmayan karakterlerle eşleşir; *, mümkün olduğunca çok kez (hiçbiri dahil); \., ondalık ayırıcıyla eşleşir; [05], beş veya sıfırla eşleşir; 0\{2\}, 2 tane daha sıfırla eşleştir (açık ve kapalı küme ayracı öncesi ters eğik çizgiler kabuğun küme ayracı genişletme yapmaya çalışmasını engeller); \s, bir boşluk karakteriyle eşleştirin (sütunun sonu anlamına gelir - farklı bir kullanım durumunda kullanmak için sütun ayırıcı, genellikle bir virgül, noktalı virgül veya sekme ile değiştirin \t).
Bunun OP'nin istediği ile tam olarak eşleşeceğini unutmayın . Bu olacak değil maç .5000veya .0000tam takiben beş veya sıfır için desen görünüyor, çünkü, sayısal olarak eşdeğer olsa bile 2 daha sıfır Arkasında boşluk. Bu önemliyse, o zamana kadar diğer tüm cevaplar, test rakamından sonra 1'den büyük herhangi bir sıfırla eşleşecekleri için başarısız olurlar. Ve FloHimself tarafından cevap hariç, bunlar maç olacak şey ikinci sütunda başlar .000 ya .500, dahil .0003ve .500Tve FloHimself tek matematiksel denk olduğunu şey eşleşir .0ve.5, ne kadar sıfır olursa olsun. Sonuncusu, OP'nin belirttiği şeyle eşleşmese de, OP'nin zaten neye ihtiyaç duyduğuyla eşleşmesi muhtemeldir.
Son olarak, awkOP istenmesine rağmen gücü ve hızı isteniyorsa, grepkomut şu şekilde olur:
Bir dosya ile awk '$1 ~ /[^.]\.[05]0{2}$/' the_file.txt
Bir boru ile my_command | awk '$1 ~ /[^.]\.[05]0{2}$/'