我如何捕捉远程文件?它仅适用于本地文件。
#!/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:没有这样的文件或目录
答案 0 :(得分:19)
而不是从文件系统读取文件的cat
使用wget -O- -q
,它通过HTTP读取文档并将其写入标准输出:
for i in $(wget -O- -q http://localhost/1/downloads.txt)
(-O...
选项表示“写入指定文件”,其中-
是标准输出; -q
选项表示“安静”,并禁用大量日志记录转到标准错误。)
答案 1 :(得分:17)
您可以使用curl
:
curl http://localhost/1/downloads.txt
答案 2 :(得分:6)
为什么使用URL从本地计算机复制?你不能直接从文件中捕捉到它吗?
如果 从远程计算机而不是localhost执行此操作,那么据我所知,您无法将网址传递给cat。
我会尝试这样的事情:
scp username@hostname:/filepath/downloads.txt /dev/stdout
正如其他人提到的那样,你也可以使用 wget 而不是 scp 。