Excelファイルから行を含むキーワードを抽出するには?

Excelファイルから行を含むキーワードを抽出するには?

特定のキーワードファイルで指定された順序で、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

おすすめ記事