10行のファイルがあります1.txt
。各行を順番に渡し、sed
出力をログに保存したいと思います。
job=`tail -1 1.txt`
getdd=`grep $job "mainlog.log"| sed -n '1p' $i > /tmp/result.log
答え1
あなたの質問によると、これは非常に不明瞭でgetdd
価値がないので役に立たないようです。
while
ループを使用できます。
while read -r job;
do
grep "$job" "mainlog.log"| sed -n '1p' "$i" >> /tmp/result.log
done < 1.txt
答え2
私はxargsを使用します
xargs -a 1.txt -I{} sh -c 'grep "$1" mainlog.log | head -n 1' _ {} > /tmp/result.log
またはwhileループと同じです。
while IFS= read -r job; do
grep "$job" mainlog.log | head -n 1
done < 1.txt > /tmp/result.log