一部修正しました。行と列の記載の誤記を修正し、データの追加をしました。
###前提・実現したいこと
100個のばらばらな名前(A)が付いたファイル(file1)があります。
これらのファイルには10,000行位のデータ(B)があります。
これと別にこの100個のファイル名(A)が3列目に、ID番号(C)が1列目に書かれたファイル(file2)があります。
この100個のファイル(A001100)の1行づつ(B)にID番号(C001100)を付与して、一つのファイルにまとめたいのですが、
やり方に困っています。
file2の3列目を読んで、そのファイル名を元にファイルAを1行目から読み込み、
file2の1列目に書かれているIDをくっつけていくという作業です。
目的ファイルのイメージとしては下記の様な感じです。
C001 B001
C001 B002
C001 B003
...
C002 B001
C002 B002
C002 B003
C002 B004
C002 B005
...
C100 B001
C100 B002
C100 B003
といった感じです。
for loopを使うことでどうにか出来そうな気がするのですが、
上手く処理出来ません。
下記を試しましたが、正直後半は自分でも何をやっているのか分かっていない状態です。アドバイス頂ければ幸いです。
他の方法として、上記のfile2(1oo個のファイル名(A)が3列目に、ID番号(C)が1列目に書かれたファイル)をもとに、ファイル名を先に換えてしまう方が簡単かも知れませんので、そのやり方でも結構です。
宜しくお願いします。
###試したソースコード
sh
1for f in `awk '{print $3}' file2` ; do 2 while read line; do 3 for i in `awk '{print $1}' file2`; do 4 echo "$i $line"; 5 done <"$f"; 6 done > file3; 7 done
###ファイルの中身
ご指摘頂いたので、ファイルの実際の中身を一部載せます。
file2はこんなファイルです。3列目がファイル名です。
ID_001 6d822383-e59b-41a6-8680-6bc3f4d1e862 480de2f2-6f01-43e9-bc1b-77b8ec8451f5.txt 4804a20f7c4979dfbc4a25039163b7d6 538584 submitted ID_002 bff3f31e-ee05-448d-af36-1ab183ba2ff4 fcd43085-7338-43fe-bc25-9d87b04e227f.txt 29096eca2f55808fa19cf849107e8f8e 541634 submitted ID_003 c640cec0-1656-4ca2-92a0-afca1cf3f86c e38e0ced-093c-44e9-9f3b-7cdd0e6b912e.txt 75a590b047e61327b56b32d88175cdce 549556 submitted ID_004 8577ad66-1a2d-41df-99c8-ba6b4a5399ac 2e33a2c5-2196-49c4-866a-34b12d984c15.txt 8235f4a52239fe40439028f713e515c0 508395 submitted ID_005 b826b9fc-3287-41cc-8e29-72666d2fa4f8 939eeb3c-9c0b-431f-8020-7165ee19f068.txt 35001fba081a7a8b9bba35f7a92be9b9 506780 submitted ID_006 d1b58025-d1cc-46ef-b9cb-6f0315a5620d e5214aa1-432a-4a47-886c-3ded1616255b.txt 905ca9f1688037beb3b77fce133a009c 524393 submitted ID_007 6543a250-d902-4612-b64e-18404944ca3d 3828d55b-81ae-42b2-8f5e-d1dcd87e576a.txt b0ea16a0c6cf2628f77acfd182e71195 534881 submitted ID_008 f68912b3-1117-4793-a492-2804c7c903de 8a799dfa-c1b5-4b13-9c91-6cbfe2abbc9f.txt 3221205f01a00db20d713d3c16cc8d47 543383 submitted ID_009 ef3a8b0a-0ce7-4d26-98cc-7e78c21db36b 09a677f2-d81d-4c3f-adf9-f8594e064e44.txt dac19654887b2cfb081f3c5f82c8f3fa 483745 submitted ID_010 6a8e84dc-306b-4752-95d7-d653fe91f3a3 f748bf78-4dc1-47ad-8611-8186479d3e4b.txt b3d8f563268ed14daf59d9598b169d69 525039 submitted ID_011 4403f1cf-51f6-45bb-8eea-2a4ee08a803c 2eaa996b-267f-4c9c-a58e-d1759c27c46c.txt b18798c0786f15af3a0734dadae8cc19 525766 submitted
file1は例えば480de2f2-6f01-43e9-bc1b-77b8ec8451f5.txt
といったファイル名で中身は下記の通りです。
0.0679637658767 0.00471509417358 2.7638655666 0.0 4.21007764058 18.1976585455 0.0 0.141924334625 76.4268070169 0.140819865095 0.0 0.0 0.0 28.6577220146 0.0338151883479 1.77092901396 8.68206352022 0.0 0.0 6.47409128452 0.0
最終的に欲しいのはこんな感じのファイルです。
ID_001 0.0679637658767 ID_001 0.00471509417358 ID_001 2.7638655666 ID_001 0.0 ID_001 4.21007764058 ID_001 18.1976585455 ID_001 0.0 ... ID_002 1.77092901396 ID_002 8.68206352022 ID_002 0.0 ID_002 0.0 ...
回答3件
あなたの回答
tips
プレビュー