2つのファイルを混合してデータをマージします。

2つのファイルを混合してデータをマージします。

例:2つのファイルがあります。

入力.txt

one
two
three
four
five

出力.txt

1
2
3
4
5

これら2つのファイルをマージして、次のように別の出力ファイル(match.txtなど)をインポートしたいと思います。

one 1
two 2
three 3
...

さらに、2つの.txtファイルをランダムに混在させると、出力ファイル(match.txt)も次のように正しいデータをマージします。

three 3
two 2
five 5
...

シェルスクリプトを書くには?

答え1

簡単にpaste注文する:

paste -d' ' input.txt output.txt > match.txt

コンテンツmatch.txt:

one 1
two 2
three 3
four 4
five 5

そしてミックス(通過するsort注文する):

paste -d' ' input.txt output.txt | sort -R

出力例:

two 2
four 4
one 1
three 3
five 5

答え2

$ cat input.txt
five
one
three
two
four

$ awk 'BEGIN{a["one"]=1;a["two"]=2;a["three"]=3;a["four"]=4;a["five"]=5}$0 in a{print $0,a[$0]}' input.txt
five 5
one 1
three 3
two 2
four 4

関連情報