Как использовать разные заменяющие тексты для шаблона, найденного несколько раз [дубликат]

0
02.10.2018, 13:35
2 ответа

Существует множество способов содрать шкуру с кошки. Предположим, что соединение между обоими файлами находится в строке №. Попробуйте, например. этот, который pasteобъединяет строки вместе, а затем сдвигает завершающее слово в поле, содержащее AAA, используя регулярное выражение ""обратные ссылки":

paste sample_log replacement-text | sed -r 's/AAA ([^[:space:]]*[[:space:]]*)(.*$)/\2 \1/'
apple 111 rose  
banana 222 tulip    
orange 333 marigold 

или этот, который заставляет awkсчитывать замены в массив, а затем заменяет второе поле соответствующим элементом массива:

awk 'NR==FNR {T[NR] = $0; next } {$2 = T[FNR]} 1' replacement-text sample_log 
apple 111 rose
banana 222 tulip
orange 333 marigold
1
28.01.2020, 02:42
#!/bin/bash 
paste logfile.txt replacement.txt | while IFS= read -r line; do

echo $line | sed "s/`echo $line | awk '{print $2}'`/`echo $line | awk '{print $4}'`/g" | awk '{print $1 " " $2 " " $3 " "}'

done
0
28.01.2020, 02:42

Теги

Похожие вопросы