私は、大きなタブが、このような多くの生化学的経路の座標を持つ2つの列区切りファイルがあります:awkを使用して共通フィールドに基づいてファイルの行をマージするにはどうすればよいですか?
A B
B D
D F
F G
G I
A C
C P
P R
A M
M L
L X
1行の1列目は、結果として、別の行の列2に等しい場合、私はラインを組み合わせたいです次の出力で:
A B D F G I
B D F G I
D F G I
F G I
G I
A C P R
C P R
P R
A M L X
M L X
L X
私は、誰もが、私はシェルスクリプトを記述することなく、これをアプローチする方法を任意のアイデアを持っていない、などのawk 1ライナーのような単純なものを使用したいですか?どんな助けもありがとうございます。私はそれぞれのステップとそれに続く各ステップを各パスウェイに入れようとしています。これらの経路はしばしば交差するので、いくつかのステップは他の経路と共有されますが、それぞれを別々に分析する必要があります。
私はそれ以降のファイルで$ 2 = $ 1目的の列をgrepをしようとするシェルスクリプト試してみました:私は私の問題は、(a)のラインを削除し、(Bから来ていることを知ってい
while [ -s test ]; do
grep -m1 "^" test > i
cut -f2 i | sed 's/^/"/' | sed 's/$/"/' | sed "s/^/awk \'\$1 == /" | sed "s/$/' test >> i/" > i.sh
sh i.sh
perl -p -e 's/\n/\t/g' i >> OUT
sed '1d' test > i ; mv i test
done
を)重複があるという事実。私はこれにどのように取り組むか分かりません。
は、列2を選択し、値== 1列目が、私の問題は、それがgrepすることで、それぞれの行をgrepします(明らかに)すべての値を外して、信頼できる "地図"を作成しない – Oddish
人々はあなたの試行を感謝し、自分自身を投稿して、(または)あなたの既存の試みを解決する際にあなたを導くように、質問の一部としてそれを更新してください。 – Inian
その入力から出力がどのように生成されるかの例を説明できますか?それは(私には少なくとも)明確ではない – Inian