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 .000
veya .500
yalnı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 sed
veya awk
olarak `grep bir dosya veya bir boru gibi kaynağını işleyebilir.
To grep
dosya kullanımıgrep '^[^.]*\.[05]0\{2\}\s' the_file.txt
İçin grep
bir 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ç .5000
veya .0000
tam 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 .0003
ve .500T
ve FloHimself tek matematiksel denk olduğunu şey eşleşir .0
ve.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, awk
OP istenmesine rağmen gücü ve hızı isteniyorsa, grep
komut şu şekilde olur:
Bir dosya ile awk '$1 ~ /[^.]\.[05]0{2}$/' the_file.txt
Bir boru ile my_command | awk '$1 ~ /[^.]\.[05]0{2}$/'