2012-01-23 6 views
11

Làm thế nào tôi có thể lấy một tập tin từ xa? Nó chỉ hoạt động cho tệp cục bộ.Làm thế nào tôi có thể cat một tập tin từ xa để đọc các thông số trong 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 

mèo: http://localhost/1/downloads.txt: Không có tập tin hoặc thư mục

Trả lời

19

Thay vì cat, mà đọc một tập tin từ tập tin hệ thống, sử dụng wget -O- -q, mà đọc một tài liệu qua giao thức HTTP và viết nó với đầu ra tiêu chuẩn:

for i in $(wget -O- -q http://localhost/1/downloads.txt) 

(tùy chọn -O... có nghĩa là "ghi vào tệp được chỉ định", w ở đây - là đầu ra tiêu chuẩn; tùy chọn -q có nghĩa là "yên tĩnh", và vô hiệu hóa rất nhiều khai thác gỗ mà nếu không sẽ đi đến sai số chuẩn)

14

Bạn có thể sử dụng curl:.

curl http://localhost/1/downloads.txt 
+0

Phải là câu trả lời được chấp nhận –

6

Tại sao bạn đang sử dụng một URL để sao chép từ máy tính cục bộ ? Bạn không thể chỉ mèo trực tiếp từ tập tin?

Nếu bạn thực hiện việc này từ máy từ xa chứ không phải máy cục bộ, thì theo tôi biết bạn không thể chuyển URL cho mèo.

tôi sẽ cố gắng một cái gì đó như thế này:

scp [email protected]:/filepath/downloads.txt /dev/stdout 

Khi ai đó đề cập bạn cũng có thể sử dụng wget thay vì scp.