Unixシェルスクリプト:2つの異なるテキストファイルのデータ(ライン)マージ

Unixシェルスクリプト:2つの異なるテキストファイルのデータ(ライン)マージ

ファイルには多くの項目がありますが、サンプルリリースではファイルごとに2つの項目しかありません。ファイル1の最初の行をファイル2の最初の行とマージしたいと思います。例は次のとおりです。

ファイル1.txt

Start Date: 2019-01-08 04:14:59; End Date: 2019-01-08 04:15:50; Difference in seconds = 51
Start Date: 2019-01-08 04:16:57; End Date: 2019-01-08 04:17:02; Difference in seconds = 5

ファイル2.txt

Fnb_dm__exachange_rollback_character
dnb_exchange_brm_rollback_character

私は次の出力が欲しい:

Fnb_dm__exachange_rollback_character :Start Date: 2019-01-08 04:14:59; End Date: 2019-01-08 04:15:50; Difference in seconds = 51
dnb_exchange_brm_rollback_character :Start Date: 2019-01-08 04:16:57; End Date: 2019-01-08 04:17:02; Difference in seconds = 5

kshを使用してこれを行うには?

ベストアンサー1

paste次のコマンドを使用できます。たとえば、コロン区切り文字を使用してファイルを1行ずつマージするには、次のコマンドを使用します。

$ paste -d: file2.txt file1.txt
Fnb_dm__exachange_rollback_character:Start Date: 2019-01-08 04:14:59; End Date: 2019-01-08 04:15:50; Difference in seconds = 51
dnb_exchange_brm_rollback_character:Start Date: 2019-01-08 04:16:57; End Date: 2019-01-08 04:17:02; Difference in seconds = 5

複数の文字区切り文字が必要な場合は、prexを使用できます。

$ pr -TmJS' :' file2.txt file1.txt
Fnb_dm__exachange_rollback_character :Start Date: 2019-01-08 04:14:59; End Date: 2019-01-08 04:15:50; Difference in seconds = 51
dnb_exchange_brm_rollback_character :Start Date: 2019-01-08 04:16:57; End Date: 2019-01-08 04:17:02; Difference in seconds = 5

おすすめ記事