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