我有一个包含 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