Wie kann ich den Inhalt einer Datei zur Verwendung als Parameter übergeben?

Wie kann ich den Inhalt einer Datei zur Verwendung als Parameter übergeben?

Ich habe eine Datei 1.txtmit 10 Zeilen. Ich möchte jede Zeile nacheinander übergeben sedund die Ausgabe in einem Protokoll speichern.

job=`tail -1 1.txt`
getdd=`grep $job "mainlog.log"| sed -n '1p' $i > /tmp/result.log

Antwort1

Aus Ihrer Frage wird nicht ganz klar getdd, dass sie nutzlos zu sein scheint, weil sie keinen Mehrwert bringt.

Sie können whileeine Schleife verwenden:

while read -r job;
do
 grep "$job" "mainlog.log"| sed -n '1p' "$i" >> /tmp/result.log
done < 1.txt

Antwort2

Ich würde xargs verwenden

xargs -a 1.txt -I{} sh -c 'grep "$1" mainlog.log | head -n 1' _ {} > /tmp/result.log

oder dasselbe wie die While-Schleife:

while IFS= read -r job; do
    grep "$job" mainlog.log | head -n 1
done < 1.txt > /tmp/result.log

verwandte Informationen