
Ich habe eine Datei 1.txt
mit 10 Zeilen. Ich möchte jede Zeile nacheinander übergeben sed
und 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 while
eine 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