Bir dizindeki her dosyayı grep ve o grep çıktısını ayrı bir dosyaya yazmama izin verecek bir bash komutu bulmak istiyorum. Benim tahminim böyle bir şey yapmak olurdu
ls -1 | xargs -I{} "grep ABC '{}' > '{}'.out"
ama bildiğim kadarıyla xargs çift tırnakları sevmiyor. Ancak çift tırnak işaretlerini kaldırırsam, komut tüm komutun çıktısını bir dizi ayrı dosya yerine '{}' adlı tek bir dosyaya yeniden yönlendirir.
Herkes xargs kullanarak bunu yapmanın bir yolu biliyor mu? Ben sadece bu grep senaryosunu xargs ile olan sorunumu göstermek için örnek olarak kullandım, böylece xargs kullanmayan çözümler benim için geçerli değil.
xargs
olmadan kullanmayın-0
: bu sadece borufind
çıkışını boru ile yaptığınız zaman geçerlidirxargs
, değil mi? ne zaman bunuxargs -a <input_file>
nasıl kullanırım? Çoğu komutlargrep
çıktılar gibi\n
ve değil,\0.
Butr
sorunu çözmek için düşünebildiğim tek yolu , belki bunu düzeltmek için tekrar kullanmaktır . Ancak bunu sadece ile kullanmak neden önemlidir-0
?