Voglio trovare un comando bash che mi permetta di grep ogni file in una directory e scrivere l'output di quel grep in un file separato. La mia ipotesi sarebbe stata quella di fare qualcosa del genere
ls -1 | xargs -I{} "grep ABC '{}' > '{}'.out"
ma, per quanto ne so, a xargs non piacciono le doppie virgolette. Se rimuovo le virgolette, tuttavia, il comando reindirizza l'output dell'intero comando su un singolo file chiamato '{}'. Out anziché su una serie di singoli file.
Qualcuno sa un modo per farlo usando xargs? Ho appena usato questo scenario grep come esempio per illustrare il mio problema con xargs, quindi tutte le soluzioni che non usano xargs non sono applicabili per me.
xargs
senza-0
: questo vale solo quando si eseguefind
l'output di pipe conxargs
, giusto? quando faccioxargs -a <input_file>
come dovrei usarlo? La maggior parte dei comandi comegrep
output con\n
e non\0.
L'unico modo in cui mi viene in mente di aggirare questo problema è ditr
riutilizzarlo per risolvere forse. Ma perché è importante usarlo solo con-0
?