Поскольку вы хотите пройти аутентификацию без предварительного обмена ключами, я не вижу другого выхода, кроме использования пароля аутентификация (по крайней мере, в первый раз).
Итак, вам нужно жестко запрограммировать пароль в вашем скрипте. Вы можете указать пароль для pscp
с его параметром -pw
. Но я не знаю, насколько это безопасно (по крайней мере, в Linux все пользователи обычно могут видеть командную строку всех процессов).
Вы можете использовать приведенную ниже команду в соответствии с вашими потребностями
sed -i s/#1520325239/$(date -d @1520325239)/g.bash_history
Использовать sed
sed -i "/#1520325239/c$(date -d @1520325239)" test.txt
-Я изменю файл на месте. Опустите «i», чтобы сначала проверить свои результаты.
Если я правильно вас понял, временная метка не одна, а много одинаковых строк. Этот скрипт должен сделать замену, которую вы хотите:
#!/bin/bash
# get timestamps from the file
dates=`sed -e '1,$s/^.*#\(.*\) \/.*/\1/' /tmp/test.txt`
for date in $dates
do
# get human readable format from timestamp
newdate=`date -d @${date}`
# replace timestamp with human readable date
sed -i "1,\$s/\#$date/$newdate/" /tmp/test.txt
done