Lynx
如何讓 lynx 辨識文件名中的空格
我正在使用腳本在 url 上查找所有 .pdf 文件的列表。但是 lynx 似乎對文件名中的空格有問題。這是腳本:
lynx --dump http://www.somesite/here/ | awk '/http/{print $2} | grep pdf > ~/Desktop/links.txt
這可以按預期工作,直到文件名中有一個帶有空格的 .pdf。Lynx 似乎在空格處截斷了文件名。有什麼方法可以防止這種情況嗎?
awk(預設情況下)使用空白作為欄位分隔符,lynx 將轉儲 url 中的空白呈現為空白。按照我在錯誤報告中的建議解決它:
lynx -listonly -dump http://www.somesite/here/ | \ awk '/\.pdf$/{ sub("^[ ]*[0-9]+.[ ]*","",$0); 列印}' > ~/Desktop/links.txt
如果內容恰好採用 UTF-8 編碼,lynx 將取消文本轉義(撤消 URL 編碼,例如**
%20
**)。2013 年為 Debian #398274完成了這種取消轉義(即,您在 Ubuntu 18.04 中擁有該功能)。
通過僅查看URL列表,添加該**
-listonly
**選項可減少不正確匹配的數量。如果您想查找多種文件類型,您可以在正則表達式中列出後綴作為替代,例如,如下所示:
awk '/\.(pdf|odt|doc|docx)$/{ sub("^[ ]*[0-9]+.[ ]*","",$0); 列印}' > ~/Desktop/links.txt