特定のキーワードファイルで指定された順序で、Excelファイル(.xls)から行を含むキーワードを抽出する必要があります。たとえば、次のようにExcelファイル(ゲノム.xlsなど)があります。
NC_0208.1 18918 94692 amyl4_A0A0H 1 54 194
NC_0208.1 18839 86123 prot4_A0A0 1 79 137
NC_0208.4 29761 74985 lip10_H8FLU5 2 393 48
NC_0208.2 29687 67745 lysin6_A0A0Q5 5 38 49
以下のようにキーワードファイル(例:id.txt)があります。
prot
lip
cellulase
lysin
amyl
予想される出力は次のとおりです。
NC_0208.1 18839 86123 prot4_A0A0 1 79 137
NC_0208.4 29761 74985 lip10_H8FLU5 2 393 48
NC_0208.2 29687 67745 lysin6_A0A0Q5 5 38 49
NC_0208.1 18918 94692 amyl4_A0A0H 1 54 194
また、ゲノムファイルにキーワードがない場合は、出力ファイルの行全体を空白にしておく必要があります。これを行うには、次のようにgrepコマンドを使用しました。
grep 'prot\|lip\|cellulase\|lysin\|amyl' genome.xls > result.xls
上記のコマンドは、行全体を含むキーワードを抽出しますが、順序が変更されました。また、欠落しているキーワードに空白行を残しません。だから私もそうするのを手伝ってください。よろしくお願いします。
ベストアンサー1
この試み、
while read a ; do grep "$a" genome.xls || printf "\n" ; done < id.txt
NC_0208.1 18839 86123 prot4_A0A0 1 79 137
NC_0208.4 29761 74985 lip10_H8FLU5 2 393 48
NC_0208.2 29687 67745 lysin6_A0A0Q5 5 38 49
NC_0208.1 18918 94692 amyl4_A0A0H 1 54 194