File3の指示に従って、単純なbashスクリプト(sed?awk?)を使用してFile1とFile2の行を新しいFile4にコピーできますか?
File1: /*two or more columns, tab delimited*/
AC 456324
DC 689712
GH 123677
KL 236587
File2: /*two or more columns, tab delimited*/
DC AABBC TTYJU
AC DDDEE YYUKI
KL GGHHG QQSSD
File3: /*one column*/
AC
DC
File4 /*tab delimited*/
AC 456324 DDDEE YYUKI
DC 689712 AABBC TTYJU
私は実際にPython辞書を使ってこれをやっていますが、簡単な解決策を知っていますか?
注:この質問にはすでに最も単純な形式の答えがあります。ファイルを1行ずつマージ
ベストアンサー1
これは、配列を使用して接続したより簡単なケースの拡張です。awk
$ awk 'BEGIN{OFS="\t"} NR==FNR {a[$1]=$1;next;} \
$1 in a {k=$1;$1="";a[k]=a[k]$0} END{for (i in a) print a[i]}' File3 File1 File2
AC 456324 DDDEE YYUKI
DC 689712 AABBC TTYJU
とは異なり、join
キーフィールドのファイルを事前にソートする必要はありません。