Измените его на следующую строку
MEXFLAGS:=CXX=#$(CC) CXXFLAGS\#'$(CCFLAGS)'
Убедитесь, что CC определен где-то раньше:
CC=g++
То, что вы ищете, называется механизмом шаблонов. Я сделал extremly simple not reliable
один для вас. Он основан на sed и, вероятно, чрезвычайно хрупок.
Обратите внимание, что у вас есть <IP address2>10.30.123.30
вместо <IP Address2>10.30.123.30
, поэтому мой скрипт не (работал )как ожидалось. Полный код ниже:
#!/usr/bin/env bash
cat <<EOF >file_1
<IP Address1>, 10, 23, <GW IP1>
FINAL INPUT.45.324
<IP Address2>, 40, 33, <GW IP2>
EOF
cat <<EOF >file_2
<IP Address1>10.155.120.20
<GW IP1>10.155.120.30
<IP Address2>10.30.123.30
<GW IP2>10.30.123.1
EOF
cp file_1 file_final
while read to_split; do
echo "to_split: $to_split"
arg1="${to_split%>*}>" # > because it is removed
arg2="${to_split#*>}"
echo "1: $arg1"
echo "2: $arg2"
sed -i "s/$arg1/$arg2/g" file_final
done < file_2
Сценарий автономный, поэтому вы можете попробовать его самостоятельно :).
Дело в том, что я не могу сказать, что это отличное решение. Реальным решением будет использование какого-нибудь шаблонизатора, такого как Jinja2.
Как далеко
awk '
NR==FNR {T[$1 FS] = $2
next
}
{for (i=1; i<=NF; i++) if ($i in T) $i = T[$i]
}
1
'
FS=">" file2 FS=", " OFS=", " file1
10.155.120.20, 10, 23, 10.155.120.30
FINAL INPUT.45.324
10.30.123.30, 40, 33, 10.30.123.1
понял? Он собирает значения замены из файла2 в массив, индексированный по метке, а затем в файле данных1 проверяет наличие каждого поля в массиве и заменяет его, если применимо. Кстати, я заменил строчный «адрес» на верхний регистр.