İlk maçtan sonra çizgileri kaldırın

Dec 31 2020

İlk satırdan sonra "tilki" kelimesini içeren tüm satırları kaldırmam gerekiyor

Örneğin aşağıdaki giriş dosyası "in.txt" için söyleyin

The quick
brown fox jumps
over
the
lazy dog
the second fox
is hunting

Sonuç olacak

The quick
brown fox jumps

Awk veya sed ile yapılmış bir komut dosyasını tercih ederim, ancak perl veya php veya python gibi diğer komut satırı araçları iyidir.

Arama amacıyla bu satırı ekleyeceğim:

Oluştuktan sonra satırları kaldırın

Daha sonra düzenleme:

Windows'ta gnuwin32 araçlarını kullanıyorum ve bulabildiğim çözüm şuydu:

grep -m1 -n fox in.txt | cut -f1 -d":" > var.txt
set /p MyNumber=<var.txt
head -%MyNumber% in.txt > out.txt

Ancak, daha kısa ve taşınabilir olan bir çözüm arıyorum (bu, Windows'a özgü "set / p" komutunu içerir.

Benzer sorular:

  • Son model oluşumundan sonra tüm satırlar nasıl silinir?

  • Maç devam eden bir maçtan önce satırlar nasıl silinir?

  • Sed ile maçtan önce tüm satırları kaldır

  • Sed kullanarak '[HATA] -17-12-2015' kalıbıyla karşılaşmadan önce 1. satırdan başlayarak satıra kadar olan satırlar nasıl silinir?

  • Bir dizenin ilk ve son oluşumundan sonraki tüm satırlar nasıl silinir?

Yanıtlar

3 Cyrus Dec 31 2020 at 03:59
awk '{print} /fox/{exit}' file

GNU sed ile:

sed '0,/fox/!d' file

veya

sed -n '0,/fox/p' file