2つの異なるtxtファイルがあります。 「all_E3.txt」という最初の項目にはオブジェクトのリスト(列)が含まれ、そのリストには重複したオブジェクトもたくさんあります。 「UPS.txt」という別のファイルには、列にオブジェクトのリストがあり(重複なし)、各オブジェクトは変数(同じ行とは異なる列、数字、または「NA」)に関連付けられています。
このファイルには、「all_E3.txt」ファイルにもオブジェクトがあります(ただしこれに限定されません)。 「ALL_E3.txt」にあるすべてのオブジェクトと、「UPS.txt」に応じた対応する変数を含む「output_UPS.txt」という別のファイルをインポートしたいと思います。たとえば、
- ファイル "all_E3.txt":
AMFR AMFR AMFR ANAPC11 CRB CRB TER CAM DVDE
- ファイル2「UPS.txt」
AMFR 0 REF 1 SDRF N.A. BHU 3 ANAPC11 2 CRB 2 YUT 1 TER 0 CAM 3 WERS N.A. DVDE 3
- ファイル出力 "output_UPS.txt"
AMFR 0 AMFR 0 AMFR 0 ANAPC11 2 CRB 2 CRB 2 TER 0 CAM 3 DVDE 3
他の組織のファイルを使用する同様の設定で、友達のアドバイスに従って次のことを試しました。
for name in ????_?
do
for file in $name/Pocket_???_$name\.pdb_OUTPUT.txt
do
grep -H Exposed $file | uniq
done
done
しかし、現在の状況に適応することはできません。オペレーティングシステムはCentOS 7です。
誰でも私を助けることができますか?ありがとうございます。
答え1
awk
有効な代替案であれば、grep
次のことが機能します。
awk 'NR==FNR{a[$1]=$2} NR>FNR{print $1,a[$1]}' UPS.txt all_E3.txt > output_UPS.txt
- 次に、最初の列と2番目の列の間のマッピングを読み取り、作成します
UPS.txt
。a
- 処理が次のファイルに達すると
all_E3.txt
(NR
グローバル行カウンターがFNR
ファイル別の行カウンターとは異なる)、そのファイルの「最初の列」と以前に作成されたマップの関連値が出力されます。 2列。
出力はにリダイレクトされますoutput_UPS.txt
。