

awk 'BEGIN {OFS = ":"} {getline line <"file1.txt"; split (line, a, ":"); print $ 1, a [2];}' file2.txt
где, Этот [{OFS = ":"}] предназначен для установки символа, который будет использоваться для добавления 2 строк из 2 файлов. Если вы используете пробел, вы получите результат, как показано ниже: префикс1: строка1 суффикс1 префикс2: строка2 суффикс2
Эта [getline line <"file1.txt"] предназначена для получения строк из первого файла. Этот [split (line, a, ":")] предназначен для разделения строки на основе двоеточия и создания массива a. Этот [print $ 1] предназначен для печати всей строки файла file2.txt. Этот [a [2]] предназначен для печати 2-го элемента массива a из первого файла
$ awk -F: 'NR==FNR {a[$1]=$2; next}
{print $0 FS a[$2]}' file1 file2
prefix1:string1:suffix1
prefix2:string2:suffix2
или если файлы уже выровнены
$ paste -d: file2 <(cut -d: -f2 file1)
prefix1:string1:suffix1
prefix2:string2:suffix2
Спасибо! Предпочитаемый ответ на использование команды «вставить», которую я раньше не знал.
Хорошо работает, спасибо!