给定一个包含2列,一个字符串和一个文件名的文件,它们如何与grep命令组合使用?还希望将输出指向与不同文件夹中的SEQFILE相同的名称。相信下面的接近,以正确引用丢失:在bash循环中使用多个变量解析文件行
while IFS=" ", read SEQID SEQFILE
do
grep -A1 -m 1 ${SEQID} ${SEQFILE} > ./tmp/${SEQFILE}
done < missingSeq.txt
给定一个包含2列,一个字符串和一个文件名的文件,它们如何与grep命令组合使用?还希望将输出指向与不同文件夹中的SEQFILE相同的名称。相信下面的接近,以正确引用丢失:在bash循环中使用多个变量解析文件行
while IFS=" ", read SEQID SEQFILE
do
grep -A1 -m 1 ${SEQID} ${SEQFILE} > ./tmp/${SEQFILE}
done < missingSeq.txt
如果该文件是逗号分隔,然后IFS=" ",
是没有意义的,但如果它的空格分隔,然后将逗号的方式获得。这可能是解决问题上面你出示:
while IFS=' ' read id file; do
grep -A1 -m1 "$id" "$file" > "./tmp/$file"
done < missingSeq.txt
你说得对,它是空格,额外的逗号是错误。这两个列文件是来自并行运行作业的错误报告,需要为每个文件名附加每个SEQID(和下面一行)。谢谢! – user2525172
IFS=' '
while read seq_id seq_file; do
grep -A1 -m1 "$seq_id" "$seq_file" >> ./tep/seq_file # i assume "tep" was actually meant
done < missingSeq.txt
做一点干净吧 –
>>将追加到文件..时间>将覆盖 –
是文件逗号或空格分隔?上面的IFS会让我想到或者两者兼而有之。 – kojiro
有一件事是你的ifs ..第二个是你的重定向操作符> –
你想要用grep命令做什么 –