Grep sorunu (aynı satırdaki iki dizeyle eşleş)


0

İşte düzgün çalışmayan bazı grep komutları var:

cat file1.txt:
apples
Date: Sun, 24 Feb 2013 8:14:06 -0800
peaches melons
cherry sky cloud
green purple
yellow

cat file2.txt:
apples
Date
peaches melons 0800
cherry sky cloud
green purple
black

Şimdi bozuk komut:

egrep -lir "apples|melons|cherry" /home/test/* | xargs grep -l "Date" | xargs grep -l "0800"

İlk argümana bakın: dosyada elma VEYA kavun VEYA kiraz bulunmalı O zaman, ikinci argüman: aynı dosya "Tarih" ve "0800" içermelidir

Yani file1.txt eşleşmeli fakat file2.txt ile eşleşmemelidir - şu anda her ikisi de eşleşmelidir

Yardımın için teşekkürler - "Date: [any] [any] [any] 0800" ile aynı satırda "Date" ve "0800" yakalamak için regexp ile grep'e ihtiyacım olduğunu düşünüyorum.


Bize bu kadar uzun ama bozuk bir komut vermek yerine, ne yaptığını ve bunun ne istediğinden farklı olduğunu tahmin etmemize izin vermek yerine, bize bunun yerine örnek girişini ve çıkışını gösteren bir örnek veya iki verebilir misiniz?
Nicole Hamilton

Yanıtlar:


3

Bence bu demek istediğin. Sıfır veya daha fazla karakter içeren tarih ve ardından 0800

egrep -lir "apples|melons|cherry" file*.txt | xargs grep -l  "Date.*0800"
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.