fileで指定された順序に従ってwhitelist.txt
ファイルから一意の識別番号を取得するためにファイル番号を使用したいと思います。例:list.txt
whitelist.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の対応する行を印刷します。2
2p
sed
2
sed -n '2p'
whitelist.txt
2p
5p
7p
代替案: 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