Как я могу удалить удаленный файл для чтения параметров в BASH?
Как я могу удалить удаленный файл? Где он работает только для локального файла.
#!/bin/bash
regex='url=(.*)'
# for i in $(cat /var/tmp/localfileworks.txt);
for i in $(cat http://localhost/1/downloads.txt);
do
echo $i;
# if [[ $i =~ $regex ]]; then
#echo ${BASH_REMATCH[1]}
#fi
done
cat: http://localhost/1/downloads.txt: Нет такого файла или каталога
Ответы
Ответ 1
Вместо cat
, который читает файл из файловой системы, используйте wget -O- -q
, который читает документ по HTTP и записывает его в стандартный вывод:
for i in $(wget -O- -q http://localhost/1/downloads.txt)
(Опция -O...
означает "запись в указанный файл", где -
- стандартный вывод, параметр -q
означает "тихий" и отключает много протоколирования, которое в противном случае переходит к стандартной ошибке.)
Ответ 2
Вы можете использовать curl
:
curl http://localhost/1/downloads.txt
Ответ 3
Почему вы используете URL-адрес для копирования с локальной машины? Не можете ли вы просто кататься прямо из файла?
Если вы выполняете это с удаленного компьютера, а не с localhost, то насколько я знаю, вы не можете передать URL-адрес cat.
Я бы попробовал что-то вроде этого:
scp [email protected]:/filepath/downloads.txt /dev/stdout
Как уже упоминалось, вы можете использовать wget вместо scp.