Подойдет ли простой sed
?
$ var=_b123
$ sed -Ee "/version/s/'(.*)'/'\1$var'/" file
war {
baseName = 'myApp'
version = '1.0.2_b123'
}
(/version/
проверяет, содержит ли строка эту строку, если да, то мы с
заменяем строку внутри одинарных кавычек той же строкой ((...)
захватывает, \1
восстанавливает) плюс текст в переменной. Кавычки здесь не важны, так как все, что нам нужно, безопасно в двойных кавычках.)
Объединение двух частей информации:
Недавно, после получения некоторых обновлений
И следующая ошибка:
18 апреля 01:47:32 Amtek in.tftpd [4777]: не удается выполнить привязку к локальному IPv4 socket: адрес уже используется
Похоже, проблема в том, что порт tftp (69) уже используется, когда вы запускаете сервер tftp. Это могло быть связано с новой программой, которая была недавно установлена / обновлена.
Выполнение следующей команды поможет вам выяснить, какой процесс использует порт tftp (69) на вашем компьютере:
netstat -lnp | grep 69
-l, --listening Показывать только прослушивающие сокеты. (По умолчанию они опущены.)
- numeric, -n Показывать числовые адреса вместо того, чтобы пытаться определить символические имена хоста, порта или пользователя.
-p, --program Показать PID и имя программы, которой принадлежит каждый сокет.
Примечание:
| grep 69
отфильтрует результат и покажет только строки, содержащие 69
Изменить:
Как вы добавили в свой вопрос, результат netstat -lnp
показывает, что теперь ] inetd
работает на udp / порту 69, возможно, он выполняет клиент tftp как часть inetd
, поэтому вы не можете запустить tftpd-hpa на этом порту.
Примечание. Проверьте, запущен ли
tftpd
, и достаточно ли он работает. можно избежать использованияtftpd-hpa
У вас есть два варианта:
Переместить tftp
сервер для использования другого порта
Это можно сделать, изменив следующую строку, устанавливающую tftp на порт 69:
TFTP_ADDRESS = ": 69"
Чтобы использовать другой порт, например6900:
TFTP_ADDRESS = ": 6900"
Примечание. Для использования этого решения потребуется, чтобы tftp-client
использовал новый номер порта
Остановить inetd
от использования udp / 69
Вы можете проверить, существует ли файл конфигурации tftp
в папке inetd
, найти файл с таким именем, как:
/etc/xinetd.d/tftp
или
/etc/inetd.d/tftp
] Это может быть полезно для тех, у кого есть новые версии tftpd -hpa. Мой конфиг:
RUN_DAEMON="yes"
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/user/tftproot"
FTP_ADDRESS=":69"
TFTP_OPTIONS="192.168.0.1 --ipv4 -m /etc/tftpd.remap --create --permissive"
Без адреса сервера tftpd (192.168.0.1 в моем случае )tftpd -служба hpa не запускалась.