ファイルAで指定された順序でファイルAの数字を使用して、ファイルBから一意のIDを取得します。

ファイルAで指定された順序でファイルAの数字を使用して、ファイルBから一意のIDを取得します。

fileで指定された順序に従ってwhitelist.txtファイルから一意の識別番号を取得するためにファイル番号を使用したいと思います。例:list.txtwhitelist.txt

$ cat whitelist.txt:  
2  
5  
7  
10   
11
(+8,000 more lines)

$ cat list.txt  
2  
172363  
14  
17  
612851  
172414  
172418  
172419  
172424  
19  
72457  
(+ 150,000 more lines)

これにより、新しいファイルにリダイレクトできます。

$ cat newfile.txt  
172363  
612851  
172418  
19   
72457  
(+8,000 more lines)

注:この問題は修正されました。次の 2017 年 5 月 5 日より前の回答は、list.txt形式 (最初の行など) >CLocus_2_Sample_(ただ数 2 以外) とファイル名file.fa(ただ数 2 ではないfile.txt) を含む入力サンプル ( ) に基づいていました。

ベストアンサー1

変更されたデータに基づいて、次のことを試してください。

$ sed -nf <(sed 's/.*/&p/g' whitelist.txt) list.txt >newfile.txt

これにより、その行を外部に印刷==>等しい==> 2行目を印刷するようにwhitelist.txtファイルエントリがieに変換されます。のすべての項目に対して同じことが起こります。 、などを含むsedスクリプト(プロセス置換によって提供される外部sed)を作成し、list.txtの対応する行を印刷します。22psed2sed -n '2p'
whitelist.txt2p5p7p

代替案: whitelist.txt 前処理:

sed 's/.*/&p/g' whitelist.txt >whitelist2.txt  #or sed -i '....' whitelist.txt to overwrite whitelist.txt
sed -nf whitelist2.txt list.txt # you can redirect output to >newfile.txt

おすすめ記事