Joker karakterli çoklu dizeler için GREP


0

Satır dosyasından satırları belirli günlerden kopyalamaya çalışıyorum.

İşte nasıl göründüklerine bir örnek.

2014-05-01T15:53:16+00:00 DEBUG (7): 

2014-04-301T11:08:10+00:00 DEBUG (7):

Bu GREP komutu çalışır, ancak yalnızca tam dizeler için:

grep -w '2014-04-30\|2014-04-29\|2014-04-28\|2014-04-27\|2014-04-26\|2014-04-25\|2014-04-24\|2014-04-23\|2014-04-22\|2014-04-21\|2014-04-202014-04-19' /test_custom.log > new_file.log

Joker karakteri eklemeye çalıştığımda, çalışmıyor. Aynı sonucu elde edebileceğim başka yollar da denedim.

grep -w '2014-04-30*\|2014-04-29*\|2014-04-28*\|2014-04-27*\|2014-04-26*\|2014-04-25*\|2014-04-24*\|2014-04-23*\|2014-04-22*\|2014-04-21*\|2014-04-20*' /test_custom.log > new_file.log

Herhangi bir öneri?

Yanıtlar:


1

*Düzenli bir ifadede, dosya adındaki joker karakterden farklı bir anlamı vardır. *anlamına gelir önceki şeyi sıfır veya daha çok kez tekrarlamak . Sadece "bir şey" demek için, "herhangi bir karakter" anlamına gelen .*, kullanmak zorundasınız ..

Dahası, tarihlerle başlayan tüm satırları görmek istiyorsanız , satırın başlangıcıyla eşleşmesi için şunu -wekleyin ve ekleyin ^:

grep '^\(2014-04-30\|2014-04-29\|2014-04-28\|2014-04-27\)'

Tarihler parantez içine alınır, böylece ^her seferinde tekrar etmeniz gerekmez .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.