Как правило, вам не нужна вся строка, чтобы создать шаблон для строки поиска sed, вам просто нужна ее уникальная часть и " (одноранговый -порт.+ )([ 0 -9]+ )" выглядит вполне достаточным для этого случая, вроде найдите ключевое слово с небольшим хвостиком для него, затем последовательность цифр и замените все это первым без изменений (\1 )и второе, используя строку в сценарии.
#!/bin/bash
FNAME=$1
NPORT=$2
SSTR='{s/(peer-port.+) ([0-9]+)/\1 '$NPORT'/};'
echo "new port $NPORT in $FNAME"
sed -E -i -e "$SSTR" $FNAME
Вы хотите вставить дату перед точкой, поэтому вам нужно разделить имя:
find. -maxdepth 1 -type f -name '*.*' -exec sh -c 'mv -- "$0" "${0%.*}"-$(date +%Y%m%d).${0##*.}' {} \;
${0%.*}
принимает имя до .
, а ${0##*.}
дает вам расширение (с датой между ).
-maxdepth 1
ограничивает файлы текущим каталогом (, исключая подкаталоги ).