2014-07-24 55 views
1

給定一個包含2列,一個字符串和一個文件名的文件,它們如何與grep命令組合使用?還希望將輸出指向與不同文件夾中的SEQFILE相同的名稱。相信下面的接近,以正確引用丟失:在bash循環中使用多個變量解析文件行

while IFS=" ", read SEQID SEQFILE 
do 
grep -A1 -m 1 ${SEQID} ${SEQFILE} > ./tmp/${SEQFILE} 
done < missingSeq.txt 
+1

是文件逗號或空格分隔?上面的IFS會讓我想到或者兩者兼而有之。 – kojiro

+0

有一件事是你的ifs ..第二個是你的重定向操作符> –

+0

你想要用grep命令做什麼 –

回答

2

如果該文件是逗號分隔,然後IFS=" ",是沒有意義的,但如果它的空格分隔,然後將逗號的方式獲得。這可能是解決問題上面你出示:

while IFS=' ' read id file; do 
    grep -A1 -m1 "$id" "$file" > "./tmp/$file" 
done < missingSeq.txt 
+0

你說得對,它是空格,額外的逗號是錯誤。這兩個列文件是來自並行運行作業的錯誤報告,需要爲每個文件名附加每個SEQID(和下面一行)。謝謝! – user2525172

0
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 
+0

做一點乾淨吧 –

+0

>>將追加到文件..時間>將覆蓋 –