desen için kabuk komut dosyası grepping ve sonra yankı mesajı


1

Aşağıdaki desende bir dosyam var

=================================================

4601 -- it means completed
4602 -- it means failed
4603 -- it means timed out

=================================================

Kuyruğa -10 dosya yaparsam, o zaman yukarıdan herhangi bir desen alırdım.

Üç sayının üzerinde durup ardından Tamamlandı | Başarısız | Zaman Aşımı olarak mesajı görüntülemek istiyorum.

Herhangi bir fikir?

Teşekkürler!

Yanıtlar:


0

İşte test için kullanabileceğiniz küçük bir script - güvenli bir yerde çalıştırın, örneğin / tmp ya da öylesine:

# Prepare
rm *.txt
echo 4601 -- it means completed > f1.txt
echo 4602 -- it means failed > f2.txt
echo 4603 -- it means timed out > f3.txt

# Test
for i in *.txt; do echo
  echo --- Processing file $i
  if grep -qs 4601 $i; then
    echo Completed
  elif grep -qs 4602 $i; then
    echo Failed
  elif grep -qs 4603 $i; then
    echo Timed-Out
  fi
done

Gereksiz alt kabuklar oluşturmayan / testler yapan / burada hızlandırdığınız için yararlı ipucu için @grawity'e (aşağıdaki yorumuna bakın) teşekkürler!

3 dosya oluşturacaktır - f1.txt, f2.txt ve f3.txt, her biri bahsettiğiniz kodlardan birini içerir ve ardından istediğiniz dosyaları oluşturarak her bir dosyayı işler.

Bu yardımcı olur umarım.


Teşekkürler icyrock !! İşe yaradı ... tam olarak ne istediğimi. Şerefe!
maneeshshetty

if [ `grep -c ...` -gt 0 ]gereksizdir. if grep -qs ...yeterlidir.
Grawity

@grawity Teşekkürler, bu güzel bir ipucu - üzerine basılabilecek diğer kişiler için düzenlendi.
icyrock.com
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.