給定一個包含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命令做什麼 –