2017-04-05 102 views
0

非法字符我有包含一個網址列,這是我閱讀使用下面的bash腳本文件:擊:捲曲:在URL

while read line 
do 
     result=`curl $line -I | grep HTTP/1.1` # save the curl result 
     printf '%s,%s\n' $line $result >> output.csv 

done < $input_file 

當我運行該腳本,我得到了錯誤:捲曲: (3)在URL中發現非法字符。

我的網址的一個例子是這樣的:http://stackoverflow.com/

+0

'result = $(curl $ line -I | grep HTTP/1.1)'? – NullDev

+0

@fvu編號當然,您可以在反引號中使用管道,並且您鏈接的Q本質上是關於將管道存儲在變量中的命令。不過,用'$(...)'代替反引號會更現代。 – Alfe

+0

@TonyGW我有一種感覺,你遇到了引用問題。嘗試在所有內容中加上適當的引號:'while IFS =''read -r line','result = $(curl「$ line」-I | grep「HTTP/1.1」)'''printf「%q,%q \ n「」$ line「」$ result「>> output.csv'告訴我們問題是否仍然出現。 – Alfe

回答

0

我不知道它是否解決您的問題,但這裏是基於我的評論答案:

更換你result='curl $line -I | grep HTTP/1.1'

隨着:result=$(curl $line -I | grep HTTP/1.1)

爲了安全起見,還把grep文本放在qoutes裏面並使用像這樣的變量:

result=$(curl ${line} -I | grep "HTTP/1.1")