如何捕获远程文件以读取BASH中的参数?

时间:2012-01-23 20:42:45

标签: linux bash fedora

我如何捕捉远程文件?它仅适用于本地文件。

#!/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:没有这样的文件或目录

3 个答案:

答案 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