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.
xargsolmadan 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\nve değil,\0.Butrsorunu çö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?